Final

OneRoster Gradebook REST/JSON Binding

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.

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.

1EdTech 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 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ip.

Copyright © 1EdTech Consortium, Inc. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/standards/specification-license.

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

Trademark information: https://www.1edtech.org/about/legal/trademarks

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.

Introduction

This Section is NOT NORMATIVE.

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 1EdTech Binding Auto-generation Toolkit (I-BAT). This means that this specification is based upon the concepts of:

  • Interoperability - the OneRoster Gradebook service focuses on the exchange of exchange of information about people, classes, courses, organizations and enrollments. There are no definitions in the specification on how the data is managed within the end-systems;
  • Service-oriented - the OneRoster Gradebook service specification defines the exchange of information in terms of the services being supplied by the collaboration of the systems.

A key artefact produced as part of the REST/JSON binding description is the associated OpenAPI file based upon the OpenAPI Specification version 2 OpenAPI Specification (version 2) and OpenAPI Specification (version 3) version 3.

Conventions

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, NOT RECOMMENDED, NOT REQUIRED, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document $are to be interpreted as described in Key words for use in RFCs to Indicate Requirement Levels.

An implementation of this specification that fails to implement a MUST/REQUIRED/SHALL requirement or fails to abide by a MUST NOT/SHALL NOT prohibition is considered nonconformant. SHOULD/SHOULD NOT/RECOMMENDED statements constitute a best practice. Ignoring a best practice does not violate conformance but a decision to disregard such guidance should be carefully considered. MAY/OPTIONAL statements indicate that implementers are entirely free to choose whether or not to implement the option.

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

Changes in Gradebook Service 1.2

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

  • The Gradebook parts of the OneRoster specification have been separated out into their own Service Model and REST/JSON Binding documents;
  • The endpoints have been annotated as '/ims/oneroster/gradebook/v1p2' to replace the '/ims/oneroster/v1p1';
  • The usage of the terms from CEDS/SCED for vocabularies have been removed so that the appropriate localised vocabularies MAY be used (see the Implementation Guide 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0 for more details);
  • Support for the exchange of 'Score Scales' has been added. The following set of endpoints have been added to the 'ScoreScales Management' interface:-
    • getAllScoreScales()
    • getScoreScale()
    • deleteScoreScale()
    • putScoreScale()
  • Support for the exchange of 'Assessment LineItems' has been added. The following set of endpoints have been added to the 'AssessmentLineItems Management' interface:-
    • getAllAssessmentLineItems()
    • getAssessmentLineItem()
    • deleteAssessmentLineItem()
    • putAssessmentLineItem()
  • Support for the exchange of 'Assessment Results' has been added. The following set of endpoints have been added to the 'AssessmentResults Management' interface:-
    • getAllAssessmentResults()
    • getAssessmentResult()
    • deleteAssessmentResult()
    • putAssessmentResult()
  • The following endpoint has been added to the 'LineItems Management' interface:-
    • postResultsForLineItem()
  • The following endpoints have been added to the 'Classes Management' interface:-
    • getScoreScalesForClass()
    • getAcademicStandardIdsForClass()
    • postResultsForAcademicSessionForClass()
    • postLineItemsForClass
  • The following endpoints have been added to the 'Schools Management' interface:-
    • getScoreScalesForSchool()
    • getAcademicStandardIdsForSchool()
    • postLineItemForSchool()
  • The 'ScoreScale' and accompanying classes have been added to the data model;
  • The 'AssessmentLineItem' and accompanying classes have been added to the data model;
  • The 'AssessmentResult' and accompanying classes have been added to the data model;
  • The 'weight' attribute has been added to the 'Category' class;
  • The 'scoreScale', 'gradingPeriod', 'learningObjectiveSet' and 'school' attributes have been added to the 'LineItem' class;
  • The 'resultValueMin' and 'resultValueMax' attributes in the 'LineItem' class have been made optional (instead of required);
  • The 'scoreScale', 'textScore, 'class' and 'learningObjectiveSet' attributes have been added to the 'Result' class;
  • The 'LearningObjectiveSet', 'LearningObjectiveIdSet', 'LearningObjectiveScoreSet' and 'LearningObjectiveResults' classes has been defined for use with the 'learningObjectiveSet' attributes;
  • The permitted tokens in the 'scoreStatus' attribute in the 'Result' class has been expanded with new values of { late | incomplete | missing | withdrawal | in progress };
  • Use of OAuth 1.0a message signing has been removed. The use of OAuth 2.0 Bearer Tokens (Client Credentials Grant) is required instead 1EdTech Security Framework 1.1 Final Release;
  • A Service Provider is REQUIRED to make a localized OpenAPI file available to enable Service Discovery 1EdTech Security Framework 1.1 Final Release.

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

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);

Mapping of the Service Operations to the REST Endpoints

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

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

deleteAssessmentLineItem Operation

Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/assessmentLineItems/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the assessment lineItem to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

deleteAssessmentResult Operation

Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/assessmentResults/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the assessment result to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

deleteCategory Operation

Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/categories/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the category to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

deleteLineItem Operation

Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/lineItems/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the lineItem to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

deleteResult Operation

Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/results/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the result to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

deleteScoreScale Operation

Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

DELETE /ims/oneroster/gradebook/v1p2/scoreScales/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the scoreScale to be deleted. Required

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
204 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllAssessmentLineItems Operation

Get all of the Assessment Line Items on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/assessmentLineItems?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json AssessmentLineItemSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllAssessmentResults Operation

Get all of the Assessment Results on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/assessmentResults?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json AssessmentResultSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllCategories Operation

Get all of the lineItem categories on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/categories?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json CategoriesSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllLineItems Operation

Get all of the Line Items on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/lineItems?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json LineItemSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllResults Operation

Get all of the results on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/results?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ResultSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAllScoreScales Operation

Get all of the ScoreScales on the service provider.

Request

GET /ims/oneroster/gradebook/v1p2/scoreScales?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ScoreScaleSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAssessmentLineItem Operation

Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/assessmentLineItems/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for this assessment lineItem. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleAssessmentLineItem No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getAssessmentResult Operation

Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/assessmentResults/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID Tthe unique identifier, GUID, for this assessment result. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleAssessmentResult No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getCategoriesForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/categories?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json CategoriesSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getCategory Operation

Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/categories/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for this category. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleCategory No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getLineItem Operation

Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/lineItems/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for this lineItem. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleLineItem No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getLineItemsForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/lineItems?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json LineItemSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getResult Operation

Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/results/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for this result. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleResult No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getResultsForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/results?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ResultSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getResultsForLineItemForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
lineItemSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the lineItem. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ResultSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getResultsForStudentForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/students/{studentSourcedId}/results?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
studentSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the student. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ResultSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getScoreScale Operation

Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.

Request

GET /ims/oneroster/gradebook/v1p2/scoreScales/{sourcedId}?fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for this scoreScale. Required
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json SingleScoreScale No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getScoreScalesForClass Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/scoreScales?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ScoreScaleSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

getScoreScalesForSchool Operation

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.

Request

GET /ims/oneroster/gradebook/v1p2/schools/{schoolSourcedId}/scoreScales?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}

Request header, path, and query parameters

Parameter Parameter Type Description Required
schoolSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the school. Required
limit (parameter.type?lower_case) PositiveInteger To define the download segmentation value i.e. the maximum number of records to be contained in the response. Optional
offset (parameter.type?lower_case) NonNegativeInteger The number of the first record to be supplied in the segmented response message. Optional
sort (parameter.type?lower_case) String 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. Optional
orderBy (parameter.type?lower_case) OrderByEnum 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. Optional
filter (parameter.type?lower_case) String The filtering rules to be applied when identifying the records to be supplied in the response message. Optional
fields (parameter.type?lower_case) String To identify the range of fields that should be supplied in the response message. Optional

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
200 application/json ScoreScaleSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
400 application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

postLineItemsForClass Operation

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.

Request

POST /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/lineItems

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json LineItemSet No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json GUIDPairSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

postLineItemsForSchool Operation

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.

Request

POST /ims/oneroster/gradebook/v1p2/schools/{schoolSourcedId}/lineItems

Request header, path, and query parameters

Parameter Parameter Type Description Required
schoolSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the school. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json LineItemSet No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json GUIDPairSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

postResultsForAcademicSessionForClass Operation

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.

Request

POST /ims/oneroster/gradebook/v1p2/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results

Request header, path, and query parameters

Parameter Parameter Type Description Required
classSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the class. Required
academicSessionSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the academic session. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json ResultSet No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json GUIDPairSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

postResultsForLineItem Operation

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.

Request

POST /ims/oneroster/gradebook/v1p2/lineItems/{lineItemSourcedId}/results

Request header, path, and query parameters

Parameter Parameter Type Description Required
lineItemSourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, for the lineItem. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json ResultSet No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json GUIDPairSet No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putAssessmentLineItem Operation

To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/assessmentLineItems/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new assessment lineItem. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleAssessmentLineItem No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putAssessmentResult Operation

To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/assessmentResults/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new assessment result. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleAssessmentResult No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putCategory Operation

To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/categories/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new category. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleCategory No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putLineItem Operation

To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/lineItems/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new lineItem. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleLineItem No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putResult Operation

To create a new result. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/results/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new result. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleResult No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

putScoreScale Operation

To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.

Request

PUT /ims/oneroster/gradebook/v1p2/scoreScales/{sourcedId}

Request header, path, and query parameters

Parameter Parameter Type Description Required
sourcedId (parameter.type?lower_case) GUID The unique identifier, GUID, to be allocated to this new scoreScale. Required

Allowed request content types

Content-Type Header Content Type Content Description Content Required Confidentiality
application/json SingleScoreScale No Description Required N/A

Responses

Allowed response codes and content types

Status Code Content-Type Header Content Type Content Description Content Required Confidentiality
201 application/json Void No Description Required N/A
DEFAULT application/json imsx_StatusInfo No Description Required N/A
401 application/json imsx_StatusInfo No Description Required N/A
403 application/json imsx_StatusInfo No Description Required N/A
404 application/json imsx_StatusInfo No Description Required N/A
422 application/json imsx_StatusInfo No Description Required N/A
429 application/json imsx_StatusInfo No Description Required N/A
500 application/json imsx_StatusInfo No Description Required N/A

Service Discovery

A Service Provider MUST provide a localized version of the OpenAPI file (version 3 JSON file format) to enable service discovery 1EdTech Security Framework 1.1 Final Release.

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

Using the Endpoint Parameters

This Section is NORMATIVE.

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:

  • 'limit' - the number of results to return (the default value is 100);
  • 'offset' - the index of the first record to return (zero index and so the default value is 0).

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"

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:

  • 'data_field' MUST be used in the request to ask for the collection to be sorted on data field. The form of ordering is implementation dependent if the 'orderBy' attribute is not used;
  • 'orderBy' MAY be used in the request to ask for the collection to be ordered ascending (asc) or descending (desc).

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 Collation Algorithm Version 9.0 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>

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:

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

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 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:

  • ?filter=subject='subject1' - record not returned;
  • ?filter=subject='subject1,subject2' - record not returned;
  • ?filter=subject='subject1,subject2,subject3' - record returned;
  • ?filter=subject~'subject1' - record returned;
  • ?filter=subject~'subject1,subject2' - record returned;
  • ?filter=subject~'subject1,subject2,subject3' - record returned.

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 Collation Algorithm Version 9.0 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:

  • CodeMajor value is 'failure';
  • Severity value is 'error';
  • CodeMinor value is 'invalid_filter_field'.

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:

  • CodeMajor value is 'failure';
  • Severity value is 'error';
  • CodeMinor value is 'invalid_selection_field'.

Security Framework

This Section is NORMATIVE.

The information in this section is taken from the IMS Security Framework 1EdTech Security Framework 1.1 Final Release: that document describes the security approaches to be adopted in all IMS specifications.

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.

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.

Scopes

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

Operation HTTP Verb Endpoint
deleteAssessmentResult DELETE /assessmentResults/{sourcedId}
deleteAssessmentLineItem DELETE /assessmentLineItems/{sourcedId}

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

Operation HTTP Verb Endpoint
getAllAssessmentResults GET /assessmentResults
getAssessmentResult GET /assessmentResults/{sourcedId}
getAllAssessmentLineItems GET /assessmentLineItems
getAssessmentLineItem GET /assessmentLineItems/{sourcedId}

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

Operation HTTP Verb Endpoint
putAssessmentResult PUT /assessmentResults/{sourcedId}
putAssessmentLineItem PUT /assessmentLineItems/{sourcedId}

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

Operation HTTP Verb Endpoint
deleteResult DELETE /results/{sourcedId}
deleteCategory DELETE /categories/{sourcedId}
deleteLineItem DELETE /lineItems/{sourcedId}
deleteScoreScale DELETE /scoreScales/{sourcedId}

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

Operation HTTP Verb Endpoint
getLineItem GET /lineItems/{sourcedId}
getResult GET /results/{sourcedId}
getResultsForLineItemForClass GET /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results
getCategoriesForClass GET /classes/{classSourcedId}/categories
getAllLineItems GET /lineItems
getAllResults GET /results
getScoreScalesForSchool GET /schools/{schoolSourcedId}/scoreScales
getResultsForClass GET /classes/{classSourcedId}/results
getScoreScale GET /scoreScales/{sourcedId}
getAllScoreScales GET /scoreScales
getAllCategories GET /categories
getLineItemsForClass GET /classes/{classSourcedId}/lineItems
getScoreScalesForClass GET /classes/{classSourcedId}/scoreScales
getCategory GET /categories/{sourcedId}
getResultsForStudentForClass GET /classes/{classSourcedId}/students/{studentSourcedId}/results

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

Operation HTTP Verb Endpoint
getAllScoreScales GET /scoreScales
getLineItem GET /lineItems/{sourcedId}
getResult GET /results/{sourcedId}
getAllCategories GET /categories
getCategory GET /categories/{sourcedId}
getAllLineItems GET /lineItems
getAllResults GET /results
getScoreScale GET /scoreScales/{sourcedId}

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

Operation HTTP Verb Endpoint
postLineItemsForClass POST /classes/{classSourcedId}/lineItems
postResultsForAcademicSessionForClass POST /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results
postLineItemsForSchool POST /schools/{schoolSourcedId}/lineItems
postResultsForLineItem POST /lineItems/{lineItemSourcedId}/results

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

Operation HTTP Verb Endpoint
putCategory PUT /categories/{sourcedId}
putResult PUT /results/{sourcedId}
putScoreScale PUT /scoreScales/{sourcedId}
putLineItem PUT /lineItems/{sourcedId}

Data Model

Data Classes

AcadSessionGUIDRef Class

This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type AcadSessionGUIDRefTypeEnum The type of object being referenced i.e. an 'academicSession'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

AssessmentLineItem Class

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.

Attribute Type Description Multiplicity Privacy
title NormalizedString The title, human readable, for the assessment lineItem. This should allow the assessment lineItem to be distinguished from its peer assessment lineItems. [1] N/A
description String A human readable description of the usage of the assessment lineItem. [0..1] N/A
class ClassGUIDRef The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class. [0..1] N/A
parentAssessmentLineItem AssessmentLineItemGUIDRef The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy. [0..1] N/A
scoreScale ScoreScaleGUIDRef The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release. [0..1] N/A
resultValueMin 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. [0..1] N/A
resultValueMax 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. [0..1] N/A
learningObjectiveSet LearningObjectiveSet The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned. [0..*] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

AssessmentLineItemGUIDRef Class

This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type AssessmentLineItemGUIDRefTypeEnum The type of object being referenced i.e. an 'assessmentLineItem'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

AssessmentLineItemSet Class

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.

Attribute Type Description Multiplicity Privacy
assessmentLineItems AssessmentLineItem The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

AssessmentResult Class

This is the container for the AssessmentResult record. An assessment result consists of the assigned score plus the context for that score.

Attribute Type Description Multiplicity Privacy
assessmentLineItem AssessmentLineItemGUIDRef The GUID of the assessment lineItem to which the assessment result is aligned. [1] N/A
student UserGUIDRef The GUID of the student for whom the assessment result is assigned. [1] N/A
score Float The score for the result. If a scoreScale is assigned then the value must align with the scale. [0..1] N/A
textScore NormalizedString An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. [0..1] N/A
scoreDate 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]. [1] N/A
scoreScale ScoreScaleGUIDRef The GUID of the scoreScale against which the result is aligned. [0..1] N/A
scorePercentile Float The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it. [0..1] N/A
scoreStatus ScoreStatusExtEnum The status of the score. The value is from an extensible enumerated vocabulary. [1] N/A
comment String A human readable comment about the score. [0..1] N/A
learningObjectiveSet LearningObjectiveScoreSet The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned. [0..*] N/A
inProgress BooleanTrueFalseEnum 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. [0..1] N/A
incomplete BooleanTrueFalseEnum This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher. [0..1] N/A
late BooleanTrueFalseEnum 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. [0..1] N/A
missing BooleanTrueFalseEnum This is used to indicate that the student's work product as not been submitted. [0..1] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

AssessmentResultSet Class

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.

Attribute Type Description Multiplicity Privacy
assessmentResults AssessmentResult The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

Base Class

This is the container for the set of common attributes that are available to all of the first class data structures.

Attribute Type Description Multiplicity Privacy
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

CategoriesSet Class

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.

Attribute Type Description Multiplicity Privacy
categories Category The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

Category Class

A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete).

Attribute Type Description Multiplicity Privacy
title NormalizedString The human readable title for the category. [1] N/A
weight Float Total weight of this grading category in calculation of the course final score. [0..1] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

CategoryGUIDRef Class

This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type CategoryGUIDRefTypeEnum The type of object being referenced i.e. a 'category'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

ClassGUIDRef Class

This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type ClassGUIDRefTypeEnum The type of object being referenced i.e. a 'class'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

CourseGUIDRef Class

This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type CourseGUIDRefTypeEnum The type of object being referenced i.e. a 'course'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

GUIDPair Class

The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.

Attribute Type Description Multiplicity Privacy
suppliedSourcedId GUID 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. [1] N/A
allocatedSourcedId GUID The sourcedId that has been allocated by the system on which the new record has been created. [1] N/A

GUIDPairSet Class

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.

Attribute Type Description Multiplicity Privacy
sourcedIdPairs GUIDPair The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values. [0..*] N/A

GUIDRef Class

This is the container for reference to a OneRoster object that has a sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

LearningObjectiveResults Class

This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.

Attribute Type Description Multiplicity Privacy
learningObjectiveId NormalizedString The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID. [1] N/A
score Float The optional mastery score supplied as a numeric value. [0..1] N/A
textScore NormalizedString The optional mastery score supplied in a non-numeric form. [0..1] N/A

LearningObjectiveScoreSet Class

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.

Attribute Type Description Multiplicity Privacy
source SourceExtEnum The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary. [1] N/A
learningObjectiveResults LearningObjectiveResults 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. [1..*] N/A

LearningObjectiveSet Class

This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.

Attribute Type Description Multiplicity Privacy
source SourceExtEnum The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary. [1] N/A
learningObjectiveIds NormalizedString The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs. [1..*] N/A

LineItem Class

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.

Attribute Type Description Multiplicity Privacy
title NormalizedString The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems. [1] N/A
description String A human readable description of the usage of the lineItem. [0..1] N/A
assignDate 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]. [1] N/A
dueDate DateTime The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601]. [1] N/A
class ClassGUIDRef The GUID of the class to which the lineItem has been assigned. [1] N/A
school OrgGUIDRef The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release. [1] N/A
category CategoryGUIDRef The GUID of the category to which the lineItem has been assigned. [1] N/A
gradingPeriod AcadSessionGUIDRef The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release. [0..1] N/A
academicSession AcadSessionGUIDRef The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used. [0..1] N/A
scoreScale ScoreScaleGUIDRef The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release. [0..1] N/A
resultValueMin 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. [0..1] N/A
resultValueMax 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. [0..1] N/A
learningObjectiveSet LearningObjectiveSet The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned. [0..*] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

LineItemGUIDRef Class

This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type LineItemGUIDRefTypeEnum The type of object being referenced i.e. a 'lineItem'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

LineItemSet Class

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.

Attribute Type Description Multiplicity Privacy
lineItems LineItem The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

Metadata Class

The container for the proprietary extensions.

This class can be extended with additional properties.

OrgGUIDRef Class

This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type OrgGUIDRefTypeEnum The type of object being referenced i.e. an 'org'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

Result Class

This is the container for the Result record. A result consists of the assigned score plus the context for that score.

Attribute Type Description Multiplicity Privacy
lineItem LineItemGUIDRef The GUID of the lineItem to which the result is aligned. [1] N/A
student UserGUIDRef The GUID of the student for whom the result is assigned. [1] N/A
class ClassGUIDRef The GUID of the class to which the result is aligned. [0..1] N/A
scoreScale ScoreScaleGUIDRef The GUID of the scoreScale against which the result is aligned. [0..1] N/A
scoreStatus ScoreStatusExtEnum The status of the score. The value is from an extensible enumerated vocabulary. [1] N/A
score Float The score for the result. If a scoreScale is assigned then the value must align with the scale. [0..1] N/A
textScore 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. [0..1] N/A
scoreDate 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]. [1] N/A
comment String A human readable comment about the score. [0..1] N/A
learningObjectiveSet LearningObjectiveScoreSet The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned. [0..*] N/A
inProgress BooleanTrueFalseEnum 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. [0..1] N/A
incomplete BooleanTrueFalseEnum This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher. [0..1] N/A
late BooleanTrueFalseEnum 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. [0..1] N/A
missing BooleanTrueFalseEnum This is used to indicate that the student's work product as not been submitted. [0..1] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

ResultSet Class

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.

Attribute Type Description Multiplicity Privacy
results Result The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

ScoreScale Class

The container for the definition Score Scale mapping i.e. the relationship between two score scales.

Attribute Type Description Multiplicity Privacy
title NormalizedString The human readable title for the score scale mapping. [1] N/A
type 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. [1] N/A
course CourseGUIDRef The GUID for the course for which this scale will be used. [0..1] N/A
class ClassGUIDRef The GUID for the class for which this scale will be used. [1] N/A
scoreScaleValue ScoreScaleValue The set of mappings for this score scale. [1..*] N/A
sourcedId GUID 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. [1] N/A
status BaseStatusEnum 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'. [1] N/A
dateLastModified 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. [1] N/A
metadata Metadata 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. [0..1] N/A

ScoreScaleGUIDRef Class

This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type ScoreScaleGUIDRefTypeEnum The type of object being referenced i.e. a 'scoreScale'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

ScoreScaleSet Class

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.

Attribute Type Description Multiplicity Privacy
scoreScales ScoreScale The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned. [0..*] N/A

ScoreScaleValue Class

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.

Attribute Type Description Multiplicity Privacy
itemValueLHS 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. [1] N/A
itemValueRHS NormalizedString The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS. [1] N/A

SingleAssessmentLineItem Class

This is the container for a single assessment lineItem instance for a message payload.

Attribute Type Description Multiplicity Privacy
assessmentLineItem AssessmentLineItem 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. [1] N/A

SingleAssessmentResult Class

This is the container for a single assessment result instance for a message payload.

Attribute Type Description Multiplicity Privacy
assessmentResult AssessmentResult 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. [1] N/A

SingleCategory Class

This is the container for a single category instance for a message payload.

Attribute Type Description Multiplicity Privacy
category Category 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. [1] N/A

SingleLineItem Class

This is the container for a single lineItem instance for a message payload.

Attribute Type Description Multiplicity Privacy
lineItem LineItem 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. [1] N/A

SingleResult Class

This is the container for a single result instance for a message payload.

Attribute Type Description Multiplicity Privacy
result Result 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. [1] N/A

SingleScoreScale Class

This is the container for a single scoreScale instance for a message payload.

Attribute Type Description Multiplicity Privacy
scoreScale ScoreScale 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. [1] N/A

UserGUIDRef Class

This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).

Attribute Type Description Multiplicity Privacy
type UserGUIDRefTypeEnum The type of object being referenced i.e. a 'user'. [1] N/A
href AnyURI The URI for the type of object being referenced. [1] N/A
sourcedId GUID The globally unique identifier of the object being referenced. [1] N/A

imsx_CodeMinor Class

This is the container for the set of code minor status codes reported in the responses from the Service Provider.

Attribute Type Description Multiplicity Privacy
imsx_codeMinorField imsx_CodeMinorField Each reported code minor status code. [1..*] N/A

imsx_CodeMinorField Class

This is the container for a single code minor status code.

Attribute Type Description Multiplicity Privacy
imsx_codeMinorFieldName 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'. [1] N/A
imsx_codeMinorFieldValue imsx_CodeMinorValueEnum The code minor status code (this is a value from the corresponding enumerated vocabulary). [1] N/A

imsx_StatusInfo Class

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.

Attribute Type Description Multiplicity Privacy
imsx_codeMajor imsx_CodeMajorEnum 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. [1] N/A
imsx_severity imsx_SeverityEnum The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. [1] N/A
imsx_description String A human readable description supplied by the entity creating the status code information. [0..1] N/A
imsx_CodeMinor imsx_CodeMinor The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes. [0..1] N/A

Enumeration Classes

AcadSessionGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.

Attribute Type Description Multiplicity Privacy
academicSession String An object that is an 'Academic Session'. [1] N/A

AssessmentLineItemGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'AssessmentLineItem'.

Attribute Type Description Multiplicity Privacy
assessmentLineItem String An object that is an 'AssessmentLineItem'. [1] N/A

BaseStatusEnum Enumeration

The set of permitted values for the type of status of a record.

Attribute Type Description Multiplicity Privacy
active String An active record. [1] N/A
tobedeleted String Denotes that it is safe to delete the record. [1] N/A

BooleanTrueFalseEnum Enumeration

This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.

Attribute Type Description Multiplicity Privacy
true String Requires the boolean value to be given as 'true'. [1] N/A
false String Requires the boolean value to be given as 'false'. [1] N/A

CategoryGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'Category'.

Attribute Type Description Multiplicity Privacy
category String An object that is an 'Category'. [1] N/A

ClassGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'Class'.

Attribute Type Description Multiplicity Privacy
class String An object that is an 'Class'. [1] N/A

CourseGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'Course'.

Attribute Type Description Multiplicity Privacy
course String An object that is an 'Course'. [1] N/A

LineItemGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'LineItem'.

Attribute Type Description Multiplicity Privacy
lineItem String An object that is an 'LineItem'. [1] N/A

OrgGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'Org'.

Attribute Type Description Multiplicity Privacy
org String An object that is an 'Org'. [1] N/A

ScoreScaleGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'.

Attribute Type Description Multiplicity Privacy
scoreScale String An object that is an 'ScoreScale'. [1] N/A

ScoreStatusEnum Enumeration

The vocabulary for the permitted set of tokens for the status of the score for a result.

Attribute Type Description Multiplicity Privacy
exempt String The result is exempt i.e. this score does NOT contribute to any summative assessment. [1] N/A
fully graded String The result is fully graded. [1] N/A
not submitted String The result is not submitted. [1] N/A
partially graded String The result is partially graded. Further scoring will be undertaken and this score must NOT be used in summative assessment i.e. it must become 'fully graded'. [1] N/A
submitted String The learner has submitted the work for grading but grading has not yet been undertaken. [1] N/A

ScoreStatusExtEnum Enumeration

This is an extensible vocabulary data-type for the status of the score being submitted.

Attribute Type Description Multiplicity Privacy
pattern String The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. [1] N/A
exempt String The result is exempt i.e. this score does NOT contribute to any summative assessment. [1] N/A
fully graded String The result is fully graded. [1] N/A
not submitted String The result is not submitted. [1] N/A
partially graded String The result is partially graded. Further scoring will be undertaken and this score must NOT be used in summative assessment i.e. it must become 'fully graded'. [1] N/A
submitted String The learner has submitted the work for grading but grading has not yet been undertaken. [1] N/A

SourceEnum Enumeration

The predefined vocabulary for the source that was responsible for creating the learning objective identifiers.

Attribute Type Description Multiplicity Privacy
case String The learning objective identifier is a CASE UUID as defined in the IMS CASE specification [CASE, 17]. [1] N/A
unknown String The source responsible for creating the learning objectives identifiers is unknown. [1] N/A

SourceExtEnum Enumeration

This is an extensible vocabulary data-type for the source creating the learning objective identifiers.

Attribute Type Description Multiplicity Privacy
pattern String This regular expression ensures that the free-form entry does NOT have the value 'case' or 'unknown'. [1] N/A
case String The learning objective identifier is a CASE UUID as defined in the IMS CASE specification [CASE, 17]. [1] N/A
unknown String The source responsible for creating the learning objectives identifiers is unknown. [1] N/A

UserGUIDRefTypeEnum Enumeration

This is the fixed enumeration for a GUIDRef that points to an 'User'.

Attribute Type Description Multiplicity Privacy
user String An object that is an 'User'. [1] N/A

imsx_CodeMajorEnum Enumeration

The permitted vocabulary for the values for the CodeMajor field.

Attribute Type Description Multiplicity Privacy
success String Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response. [1] N/A
processing String Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services. [1] N/A
failure String Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields. [1] N/A
unsupported String Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation. [1] N/A

imsx_CodeMinorValueEnum Enumeration

The permitted vocabulary for the values for the CodeMinorValue field.

Attribute Type Description Multiplicity Privacy
fullsuccess String The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '200' for a successful 'GET' request; '201' for a successful 'PUT' request; '204' for a successful 'DELETE' request. [1] N/A
invalid_filter_field String An invalid filter field was supplied and so the filtering was not possible. No data has been reurned. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. [1] N/A
invalid_selection_field String An invalid selection field was supplied and data filtering on the selection criteria was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. [1] N/A
invaliddata String This error condition may occur if a JSON request/response body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and a HTTP code of '422'. [1] N/A
unauthorisedrequest String The request was not correctly authorised. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'. [1] N/A
internal_server_error String This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'. [1] N/A
server_busy String The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'. [1] N/A
deletefailure String The deletion request has failed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. [1] N/A
unknownobject String The supplied identifier is unknown in the Service Provider and so the object could not be changed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '404'. [1] N/A
forbidden String This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'. [1] N/A

imsx_SeverityEnum Enumeration

The permitted vocabulary for the values for the Severity field.

Attribute Type Description Multiplicity Privacy
status String The request has been completed and a response was received from the Service Provider. [1] N/A
warning String The request has only been partially completed. For an asynchronous service a further response should be expected. [1] N/A
error String A significant error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request). [1] N/A

OrderByEnum Enumeration

No Description

Attribute Type Description Multiplicity Privacy
asc String No Description [1] N/A
desc String No Description [1] N/A

Derived Classes

GUID Class

The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.

Identifier Class

The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.

ScoreStatusExtString Class

The data-type that enables the score status enumerated vocabulary to be extended.

Attribute Type Description Multiplicity Privacy
pattern String The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. [1] N/A

SourceExtensionString Class

This data-type ensures that the free-form entry does NOT have the value 'case' or 'unknown'.

Attribute Type Description Multiplicity Privacy
pattern String This regular expression ensures that the free-form entry does NOT have the value 'case' or 'unknown'. [1] N/A

UUID Class

The data-type for establishing a CASE-compliant Globally Unique Identifier (GUID) [CASE, 17]. The form of the CASE GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported.

Attribute Type Description Multiplicity Privacy
pattern String Defines the regular expression that imposes the form of UUID. [1] N/A

AnyURI Class

No Description

Boolean Class

No Description

Date Class

No Description

DateTime Class

No Description

Decimal Class

No Description

Float Class

No Description

Integer Class

No Description

Namespace Class

No Description

This class can be extended with additional properties.

NonNegativeInteger Class

No Description

NormalizedString Class

No Description

PositiveInteger Class

No Description

String Class

No Description

Void Class

No Description

Union Classes

ScoreStatusExtEnum Class

This is an extensible vocabulary data-type for the status of the score being submitted.

Attribute Type Description Multiplicity Privacy
pattern String The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. [1] N/A
exempt String The result is exempt i.e. this score does NOT contribute to any summative assessment. [1] N/A
fully graded String The result is fully graded. [1] N/A
not submitted String The result is not submitted. [1] N/A
partially graded String The result is partially graded. Further scoring will be undertaken and this score must NOT be used in summative assessment i.e. it must become 'fully graded'. [1] N/A
submitted String The learner has submitted the work for grading but grading has not yet been undertaken. [1] N/A

SourceExtEnum Class

This is an extensible vocabulary data-type for the source creating the learning objective identifiers.

Attribute Type Description Multiplicity Privacy
pattern String This regular expression ensures that the free-form entry does NOT have the value 'case' or 'unknown'. [1] N/A
case String The learning objective identifier is a CASE UUID as defined in the IMS CASE specification [CASE, 17]. [1] N/A
unknown String The source responsible for creating the learning objectives identifiers is unknown. [1] N/A

Primitive Types

AnyURI Primitive Type

No Description

Boolean Primitive Type

No Description

Date Primitive Type

No Description

DateTime Primitive Type

No Description

Decimal Primitive Type

No Description

Float Primitive Type

No Description

Integer Primitive Type

No Description

Namespace Primitive Type

No Description

This class can be extended with additional properties.

NonNegativeInteger Primitive Type

No Description

NormalizedString Primitive Type

No Description

PositiveInteger Primitive Type

No Description

String Primitive Type

No Description

Void Primitive Type

No Description

Extending and Profiling the Binding

This Section is NOT NORMATIVE.

Extending the Binding

Proprietary extensions of the service are based upon three approaches:

The extension of the data models being manipulated by the current set of operations (including extending vocabularies); The inclusion of new operations to support new proprietary functionality; The inclusion of proprietary OAuth 2 scopes. 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 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0.

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 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0.

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.

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.

Profiling the Binding

This Service can be profiled. In general, Profiling is used to:

  • Refine which Interfaces are used and which operations are supported for each Interface;
  • Refine the data models by increasing the constraints on the base definitions.

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.

OpenAPI Listings

This Section is NORMATIVE.

Listing of the OpenAPI (JSON) File

{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "OpenAPI schema for OneRoster Gradebook Service",
    "description" : "The OneRoster Gradebook Service enables the exchange of K-12 oriented gradebook data. This exchange is typically between the Student Information System and the learning delivery systems. The service provides a number of operations, collected as several endpoints, primarily based upon read, create and delete of the first class objects. ",
    "termsOfService" : "https://www.imsglobal.org/license.html",
    "contact" : {
      "name" : "IMS Global",
      "url" : "https://www.imsglobal.org",
      "email" : "support@imsglobal.org"
    },
    "license" : {
      "name" : "IMS Global Specification Document License",
      "url" : "https://www.imsglobal.org/license.html"
    },
    "version" : "1.2",
    "x-status" : "Final",
    "x-model-pid" : "org.1edtech.orgradebook.v1p2.model",
    "x-service-pid" : "org.1edtech.orgradebook.v1p2.rest.servicemodel",
    "x-src-operation-count" : 35,
    "x-oas-operation-count" : 35
  },
  "servers" : [ {
    "url" : "https://example.org/ims/oneroster/gradebook/v1p2",
    "description" : "The above Server URL should be changed to the actual server location."
  } ],
  "tags" : [ {
    "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" : "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" : "LineItemsManagement",
    "description" : "This enables the management of lineItems i.e. the set of results for the assessment of some activity."
  }, {
    "name" : "ScoreScalesManagement",
    "description" : "This enables the management of scoreScales i.e. the set of scales for the results and 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" : "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."
  } ],
  "paths" : {
    "/categories" : {
      "get" : {
        "tags" : [ "CategoriesManagement" ],
        "summary" : "The REST GET operation for the getAllCategories() API call.",
        "description" : "Get all of the lineItem categories on the service provider.",
        "operationId" : "getAllCategories",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CategoriesSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllCategories() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getallcategories.operation"
      }
    },
    "/categories/{sourcedId}" : {
      "get" : {
        "tags" : [ "CategoriesManagement" ],
        "summary" : "The REST GET operation for the getCategory() API call.",
        "description" : "Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getCategory",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for this category.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleCategory"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getcategory.operation"
      },
      "put" : {
        "tags" : [ "CategoriesManagement" ],
        "summary" : "The REST PUT operation for the putCategory() API call.",
        "description" : "To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putCategory",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new category.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putCategory operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleCategory"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putcategory.operation"
      },
      "delete" : {
        "tags" : [ "CategoriesManagement" ],
        "summary" : "The REST DELETE operation for the deleteCategory() API call.",
        "description" : "Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteCategory",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the category to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteCategory() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deletecategory.operation"
      }
    },
    "/classes/{classSourcedId}/results" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getResultsForClass() API call.",
        "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.",
        "operationId" : "getResultsForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResultSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getresultsforclass.operation"
      }
    },
    "/classes/{classSourcedId}/lineItems" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getLineItemsForClass() API call.",
        "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.",
        "operationId" : "getLineItemsForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LineItemSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getlineitemsforclass.operation"
      },
      "post" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST POST operation for the postLineItemsForClass() API call.",
        "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.",
        "operationId" : "postLineItemsForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the postLineItemsForClass operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LineItemSet"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GUIDPairSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the postLineItemsForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.postlineitemsforclass.operation"
      }
    },
    "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getResultsForLineItemForClass() API call.",
        "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.",
        "operationId" : "getResultsForLineItemForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "name" : "lineItemSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResultSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForLineItemForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getresultsforlineitemforclass.operation"
      }
    },
    "/classes/{classSourcedId}/students/{studentSourcedId}/results" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getResultsForStudentForClass() API call.",
        "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.",
        "operationId" : "getResultsForStudentForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "name" : "studentSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the student.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResultSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForStudentForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getresultsforstudentforclass.operation"
      }
    },
    "/classes/{classSourcedId}/categories" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getCategoriesForClass() API call.",
        "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.",
        "operationId" : "getCategoriesForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CategoriesSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getCategoriesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getcategoriesforclass.operation"
      }
    },
    "/classes/{classSourcedId}/scoreScales" : {
      "get" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST GET operation for the getScoreScalesForClass() API call.",
        "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.",
        "operationId" : "getScoreScalesForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScoreScaleSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScalesForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getscorescalesforclass.operation"
      }
    },
    "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" : {
      "post" : {
        "tags" : [ "ClassesManagement" ],
        "summary" : "The REST POST operation for the postResultsForAcademicSessionForClass() API call.",
        "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.",
        "operationId" : "postResultsForAcademicSessionForClass",
        "parameters" : [ {
          "name" : "classSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the class.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "name" : "academicSessionSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the academic session.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the postResultsForAcademicSessionForClass operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ResultSet"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GUIDPairSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the postResultsForAcademicSessionForClass() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.postresultsforacademicsessionforclass.operation"
      }
    },
    "/results" : {
      "get" : {
        "tags" : [ "ResultsManagement" ],
        "summary" : "The REST GET operation for the getAllResults() API call.",
        "description" : "Get all of the results on the service provider.",
        "operationId" : "getAllResults",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResultSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getallresults.operation"
      }
    },
    "/results/{sourcedId}" : {
      "get" : {
        "tags" : [ "ResultsManagement" ],
        "summary" : "The REST GET operation for the getResult() API call.",
        "description" : "Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for this result.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleResult"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getresult.operation"
      },
      "put" : {
        "tags" : [ "ResultsManagement" ],
        "summary" : "The REST PUT operation for the putResult() API call.",
        "description" : "To create a new result. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new result.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putResult operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleResult"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putresult.operation"
      },
      "delete" : {
        "tags" : [ "ResultsManagement" ],
        "summary" : "The REST DELETE operation for the deleteResult() API call.",
        "description" : "Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the result to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deleteresult.operation"
      }
    },
    "/lineItems" : {
      "get" : {
        "tags" : [ "LineItemsManagement" ],
        "summary" : "The REST GET operation for the getAllLineItems() API call.",
        "description" : "Get all of the Line Items on the service provider.",
        "operationId" : "getAllLineItems",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LineItemSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getalllineitems.operation"
      }
    },
    "/lineItems/{sourcedId}" : {
      "get" : {
        "tags" : [ "LineItemsManagement" ],
        "summary" : "The REST GET operation for the getLineItem() API call.",
        "description" : "Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for this lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleLineItem"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getlineitem.operation"
      },
      "put" : {
        "tags" : [ "LineItemsManagement" ],
        "summary" : "The REST PUT operation for the putLineItem() API call.",
        "description" : "To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putLineItem operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleLineItem"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putlineitem.operation"
      },
      "delete" : {
        "tags" : [ "LineItemsManagement" ],
        "summary" : "The REST DELETE operation for the deleteLineItem() API call.",
        "description" : "Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the lineItem to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deletelineitem.operation"
      }
    },
    "/lineItems/{lineItemSourcedId}/results" : {
      "post" : {
        "tags" : [ "LineItemsManagement" ],
        "summary" : "The REST POST operation for the postResultsForLineItem() API call.",
        "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.",
        "operationId" : "postResultsForLineItem",
        "parameters" : [ {
          "name" : "lineItemSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the postResultsForLineItem operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ResultSet"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GUIDPairSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the postResultsForLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.postresultsforlineitem.operation"
      }
    },
    "/scoreScales" : {
      "get" : {
        "tags" : [ "ScoreScalesManagement" ],
        "summary" : "The REST GET operation for the getAllScoreScales() API call.",
        "description" : "Get all of the ScoreScales on the service provider.",
        "operationId" : "getAllScoreScales",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScoreScaleSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllScoreScales() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getallscorescales.operation"
      }
    },
    "/scoreScales/{sourcedId}" : {
      "get" : {
        "tags" : [ "ScoreScalesManagement" ],
        "summary" : "The REST GET operation for the getScoreScale() API call.",
        "description" : "Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getScoreScale",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for this scoreScale.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleScoreScale"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getscorescale.operation"
      },
      "put" : {
        "tags" : [ "ScoreScalesManagement" ],
        "summary" : "The REST PUT operation for the putScoreScale() API call.",
        "description" : "To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putScoreScale",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new scoreScale.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putScoreScale operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleScoreScale"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putscorescale.operation"
      },
      "delete" : {
        "tags" : [ "ScoreScalesManagement" ],
        "summary" : "The REST DELETE operation for the deleteScoreScale() API call.",
        "description" : "Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteScoreScale",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the scoreScale to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteScoreScale() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deletescorescale.operation"
      }
    },
    "/schools/{schoolSourcedId}/scoreScales" : {
      "get" : {
        "tags" : [ "SchoolsManagement" ],
        "summary" : "The REST GET operation for the getScoreScalesForSchool() API call.",
        "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.",
        "operationId" : "getScoreScalesForSchool",
        "parameters" : [ {
          "name" : "schoolSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the school.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScoreScaleSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScalesForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getscorescalesforschool.operation"
      }
    },
    "/schools/{schoolSourcedId}/lineItems" : {
      "post" : {
        "tags" : [ "SchoolsManagement" ],
        "summary" : "The REST POST operation for the postLineItemsForSchool() API call.",
        "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.",
        "operationId" : "postLineItemsForSchool",
        "parameters" : [ {
          "name" : "schoolSourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the school.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the postLineItemsForSchool operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LineItemSet"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GUIDPairSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the postLineItemsForSchool() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.postlineitemsforschool.operation"
      }
    },
    "/assessmentLineItems" : {
      "get" : {
        "tags" : [ "AssessmentLineItemsManagement" ],
        "summary" : "The REST GET operation for the getAllAssessmentLineItems() API call.",
        "description" : "Get all of the Assessment Line Items on the service provider.",
        "operationId" : "getAllAssessmentLineItems",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssessmentLineItemSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllAssessmentLineItems() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getallassessmentlineitems.operation"
      }
    },
    "/assessmentLineItems/{sourcedId}" : {
      "get" : {
        "tags" : [ "AssessmentLineItemsManagement" ],
        "summary" : "The REST GET operation for the getAssessmentLineItem() API call.",
        "description" : "Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getAssessmentLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for this assessment lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleAssessmentLineItem"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getassessmentlineitem.operation"
      },
      "put" : {
        "tags" : [ "AssessmentLineItemsManagement" ],
        "summary" : "The REST PUT operation for the putAssessmentLineItem() API call.",
        "description" : "To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putAssessmentLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new assessment lineItem.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putAssessmentLineItem operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleAssessmentLineItem"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putassessmentlineitem.operation"
      },
      "delete" : {
        "tags" : [ "AssessmentLineItemsManagement" ],
        "summary" : "The REST DELETE operation for the deleteAssessmentLineItem() API call.",
        "description" : "Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteAssessmentLineItem",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the assessment lineItem to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteAssessmentLineItem() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deleteassessmentlineitem.operation"
      }
    },
    "/assessmentResults" : {
      "get" : {
        "tags" : [ "AssessmentResultsManagement" ],
        "summary" : "The REST GET operation for the getAllAssessmentResults() API call.",
        "description" : "Get all of the Assessment Results on the service provider.",
        "operationId" : "getAllAssessmentResults",
        "parameters" : [ {
          "$ref" : "#/components/parameters/limit"
        }, {
          "$ref" : "#/components/parameters/offset"
        }, {
          "$ref" : "#/components/parameters/sort"
        }, {
          "$ref" : "#/components/parameters/orderBy"
        }, {
          "$ref" : "#/components/parameters/filter"
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssessmentResultSet"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllAssessmentResults() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getallassessmentresults.operation"
      }
    },
    "/assessmentResults/{sourcedId}" : {
      "get" : {
        "tags" : [ "AssessmentResultsManagement" ],
        "summary" : "The REST GET operation for the getAssessmentResult() API call.",
        "description" : "Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "getAssessmentResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "Tthe unique identifier, GUID, for this assessment result.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        }, {
          "$ref" : "#/components/parameters/fields"
        } ],
        "responses" : {
          "200" : {
            "description" : "The 200 (OK) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SingleAssessmentResult"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "The 400 (BAD_REQUEST) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.getassessmentresult.operation"
      },
      "put" : {
        "tags" : [ "AssessmentResultsManagement" ],
        "summary" : "The REST PUT operation for the putAssessmentResult() API call.",
        "description" : "To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.",
        "operationId" : "putAssessmentResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, to be allocated to this new assessment result.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "requestBody" : {
          "description" : "The request body for the putAssessmentResult operation.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SingleAssessmentResult"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "The 201 (CREATED) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the putAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.putassessmentresult.operation"
      },
      "delete" : {
        "tags" : [ "AssessmentResultsManagement" ],
        "summary" : "The REST DELETE operation for the deleteAssessmentResult() API call.",
        "description" : "Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
        "operationId" : "deleteAssessmentResult",
        "parameters" : [ {
          "name" : "sourcedId",
          "in" : "path",
          "description" : "The unique identifier, GUID, for the assessment result to be deleted.",
          "required" : true,
          "allowEmptyValue" : false,
          "style" : "simple",
          "schema" : {
            "type" : "string",
            "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID."
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The 204 (NO_CONTENT) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "default" : {
            "description" : "The default response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "401" : {
            "description" : "The 401 (UNAUTHORIZED) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "The 403 (FORBIDDEN) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "404" : {
            "description" : "The 404 (NOT_FOUND) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "422" : {
            "description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "429" : {
            "description" : "The 429 (TOO_MANY_REQUESTS) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          },
          "500" : {
            "description" : "The 500 (INTERNAL_SERVER_ERROR) response to the deleteAssessmentResult() API call.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/imsx_StatusInfo"
                }
              }
            }
          }
        },
        "security" : [ {
          "OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" ]
        } ],
        "x-operation-pid" : "org.1edtech.orgradebook.v1p2.rest.deleteassessmentresult.operation"
      }
    }
  },
  "components" : {
    "schemas" : {
      "UserGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'user'.",
            "enum" : [ "user" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.userguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.userguidref.class"
      },
      "AssessmentResultSet" : {
        "type" : "object",
        "properties" : {
          "assessmentResults" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/AssessmentResult"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.assessmentresult.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.assessmentresultset.class"
      },
      "OrgGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. an 'org'.",
            "enum" : [ "org" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.orgguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.orgguidref.class"
      },
      "AssessmentLineItemGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
            "enum" : [ "assessmentLineItem" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.assessmentlineitemguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.assessmentlineitemguidref.class"
      },
      "Category" : {
        "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "weight" : {
            "type" : "number",
            "description" : "Total weight of this grading category in calculation of the course final score.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "title" : {
            "type" : "string",
            "description" : "The human readable title for the category.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.category.class"
      },
      "CourseGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'course'.",
            "enum" : [ "course" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.courseguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.courseguidref.class"
      },
      "LineItemGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'lineItem'.",
            "enum" : [ "lineItem" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.lineitemguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.lineitemguidref.class"
      },
      "SingleAssessmentResult" : {
        "required" : [ "assessmentResult" ],
        "type" : "object",
        "properties" : {
          "assessmentResult" : {
            "$ref" : "#/components/schemas/AssessmentResult"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single assessment result instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singleassessmentresult.class"
      },
      "LineItemSet" : {
        "type" : "object",
        "properties" : {
          "lineItems" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/LineItem"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.lineitem.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.lineitemset.class"
      },
      "SingleLineItem" : {
        "required" : [ "lineItem" ],
        "type" : "object",
        "properties" : {
          "lineItem" : {
            "$ref" : "#/components/schemas/LineItem"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single lineItem instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singlelineitem.class"
      },
      "GUIDPairSet" : {
        "type" : "object",
        "properties" : {
          "sourcedIdPairs" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
            "items" : {
              "$ref" : "#/components/schemas/GUIDPair"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.guidpair.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.guidpairset.class"
      },
      "Metadata" : {
        "type" : "object",
        "properties" : { },
        "additionalProperties" : true,
        "description" : "The container for the proprietary extensions.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.metadata.class"
      },
      "AcadSessionGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. an 'academicSession'.",
            "enum" : [ "academicSession" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.acadsessionguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.acadsessionguidref.class"
      },
      "LearningObjectiveScoreSet" : {
        "required" : [ "source", "learningObjectiveResults" ],
        "type" : "object",
        "properties" : {
          "learningObjectiveResults" : {
            "minItems" : 1,
            "type" : "array",
            "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.",
            "items" : {
              "$ref" : "#/components/schemas/LearningObjectiveResults"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.learningobjectiveresults.class"
          },
          "source" : {
            "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
            "anyOf" : [ {
              "type" : "string",
              "enum" : [ "case", "unknown" ]
            }, {
              "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
              "type" : "string"
            } ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.sourceextenum.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class"
      },
      "imsx_CodeMinorField" : {
        "required" : [ "imsx_codeMinorFieldName", "imsx_codeMinorFieldValue" ],
        "type" : "object",
        "properties" : {
          "imsx_codeMinorFieldName" : {
            "type" : "string",
            "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'.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "imsx_codeMinorFieldValue" : {
            "type" : "string",
            "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
            "enum" : [ "fullsuccess", "invalid_filter_field", "invalid_selection_field", "invaliddata", "unauthorisedrequest", "internal_server_error", "server_busy", "deletefailure", "unknownobject", "forbidden" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.imsx_codeminorvalueenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single code minor status code.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.imsx_codeminorfield.class"
      },
      "ClassGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'class'.",
            "enum" : [ "class" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.classguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.classguidref.class"
      },
      "Result" : {
        "required" : [ "lineItem", "student", "scoreStatus", "scoreDate", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "learningObjectiveSet" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
            "items" : {
              "$ref" : "#/components/schemas/LearningObjectiveScoreSet"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class"
          },
          "inProgress" : {
            "type" : "string",
            "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.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "student" : {
            "$ref" : "#/components/schemas/UserGUIDRef"
          },
          "scoreScale" : {
            "$ref" : "#/components/schemas/ScoreScaleGUIDRef"
          },
          "score" : {
            "type" : "number",
            "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "textScore" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "incomplete" : {
            "type" : "string",
            "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "lineItem" : {
            "$ref" : "#/components/schemas/LineItemGUIDRef"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "late" : {
            "type" : "string",
            "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.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "missing" : {
            "type" : "string",
            "description" : "This is used to indicate that the student's work product as not been submitted.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "scoreStatus" : {
            "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
            "anyOf" : [ {
              "type" : "string",
              "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
            }, {
              "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
              "type" : "string"
            } ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.scorestatusextenum.class"
          },
          "comment" : {
            "type" : "string",
            "description" : "A human readable comment about the score.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.string.class"
          },
          "class" : {
            "$ref" : "#/components/schemas/ClassGUIDRef"
          },
          "scoreDate" : {
            "type" : "string",
            "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].",
            "format" : "date",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.date.class"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.result.class"
      },
      "SingleCategory" : {
        "required" : [ "category" ],
        "type" : "object",
        "properties" : {
          "category" : {
            "$ref" : "#/components/schemas/Category"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single category instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singlecategory.class"
      },
      "ScoreScaleValue" : {
        "required" : [ "itemValueLHS", "itemValueRHS" ],
        "type" : "object",
        "properties" : {
          "itemValueRHS" : {
            "type" : "string",
            "description" : "The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "itemValueLHS" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.scorescalevalue.class"
      },
      "imsx_StatusInfo" : {
        "required" : [ "imsx_codeMajor", "imsx_severity" ],
        "type" : "object",
        "properties" : {
          "imsx_CodeMinor" : {
            "$ref" : "#/components/schemas/imsx_CodeMinor"
          },
          "imsx_codeMajor" : {
            "type" : "string",
            "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.",
            "enum" : [ "success", "processing", "failure", "unsupported" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.imsx_codemajorenum.class"
          },
          "imsx_description" : {
            "type" : "string",
            "description" : "A human readable description supplied by the entity creating the status code information.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.string.class"
          },
          "imsx_severity" : {
            "type" : "string",
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "enum" : [ "status", "warning", "error" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.imsx_severityenum.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.imsx_statusinfo.class"
      },
      "CategoryGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'category'.",
            "enum" : [ "category" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.categoryguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.categoryguidref.class"
      },
      "ResultSet" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/Result"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.result.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.resultset.class"
      },
      "GUIDPair" : {
        "required" : [ "suppliedSourcedId", "allocatedSourcedId" ],
        "type" : "object",
        "properties" : {
          "suppliedSourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "allocatedSourcedId" : {
            "type" : "string",
            "description" : "The sourcedId that has been allocated by the system on which the new record has been created.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.guidpair.class"
      },
      "AssessmentResult" : {
        "required" : [ "assessmentLineItem", "student", "scoreDate", "scoreStatus", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "assessmentLineItem" : {
            "$ref" : "#/components/schemas/AssessmentLineItemGUIDRef"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "learningObjectiveSet" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
            "items" : {
              "$ref" : "#/components/schemas/LearningObjectiveScoreSet"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class"
          },
          "inProgress" : {
            "type" : "string",
            "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.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "student" : {
            "$ref" : "#/components/schemas/UserGUIDRef"
          },
          "scoreScale" : {
            "$ref" : "#/components/schemas/ScoreScaleGUIDRef"
          },
          "score" : {
            "type" : "number",
            "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "textScore" : {
            "type" : "string",
            "description" : "An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "incomplete" : {
            "type" : "string",
            "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "scorePercentile" : {
            "type" : "number",
            "description" : "The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "late" : {
            "type" : "string",
            "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.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "missing" : {
            "type" : "string",
            "description" : "This is used to indicate that the student's work product as not been submitted.",
            "enum" : [ "true", "false" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.booleantruefalseenum.class"
          },
          "scoreStatus" : {
            "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
            "anyOf" : [ {
              "type" : "string",
              "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
            }, {
              "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
              "type" : "string"
            } ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.scorestatusextenum.class"
          },
          "comment" : {
            "type" : "string",
            "description" : "A human readable comment about the score.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.string.class"
          },
          "scoreDate" : {
            "type" : "string",
            "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].",
            "format" : "date",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.date.class"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.assessmentresult.class"
      },
      "LearningObjectiveResults" : {
        "required" : [ "learningObjectiveId" ],
        "type" : "object",
        "properties" : {
          "score" : {
            "type" : "number",
            "description" : "The optional mastery score supplied as a numeric value. ",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "textScore" : {
            "type" : "string",
            "description" : "The optional mastery score supplied in a non-numeric form. ",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "learningObjectiveId" : {
            "type" : "string",
            "description" : "The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.learningobjectiveresults.class"
      },
      "CategoriesSet" : {
        "type" : "object",
        "properties" : {
          "categories" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/Category"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.category.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.categoriesset.class"
      },
      "ScoreScaleGUIDRef" : {
        "required" : [ "type", "href", "sourcedId" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "description" : "The globally unique identifier of the object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "href" : {
            "type" : "string",
            "description" : "The URI for the type of object being referenced.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.anyuri.class"
          },
          "type" : {
            "type" : "string",
            "description" : "The type of object being referenced i.e. a 'scoreScale'.",
            "enum" : [ "scoreScale" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.scorescaleguidreftypeenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.scorescaleguidref.class"
      },
      "SingleResult" : {
        "required" : [ "result" ],
        "type" : "object",
        "properties" : {
          "result" : {
            "$ref" : "#/components/schemas/Result"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single result instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singleresult.class"
      },
      "AssessmentLineItem" : {
        "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "resultValueMax" : {
            "type" : "number",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "learningObjectiveSet" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
            "items" : {
              "$ref" : "#/components/schemas/LearningObjectiveSet"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.learningobjectiveset.class"
          },
          "description" : {
            "type" : "string",
            "description" : "A human readable description of the usage of the assessment lineItem.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.string.class"
          },
          "parentAssessmentLineItem" : {
            "$ref" : "#/components/schemas/AssessmentLineItemGUIDRef"
          },
          "title" : {
            "type" : "string",
            "description" : "The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "class" : {
            "$ref" : "#/components/schemas/ClassGUIDRef"
          },
          "resultValueMin" : {
            "type" : "number",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "scoreScale" : {
            "$ref" : "#/components/schemas/ScoreScaleGUIDRef"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.assessmentlineitem.class"
      },
      "SingleScoreScale" : {
        "required" : [ "scoreScale" ],
        "type" : "object",
        "properties" : {
          "scoreScale" : {
            "$ref" : "#/components/schemas/ScoreScale"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single scoreScale instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singlescorescale.class"
      },
      "LineItem" : {
        "required" : [ "title", "assignDate", "dueDate", "class", "school", "category", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "resultValueMax" : {
            "type" : "number",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "learningObjectiveSet" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
            "items" : {
              "$ref" : "#/components/schemas/LearningObjectiveSet"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.learningobjectiveset.class"
          },
          "assignDate" : {
            "type" : "string",
            "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].",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "dueDate" : {
            "type" : "string",
            "description" : "The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "description" : {
            "type" : "string",
            "description" : "A human readable description of the usage of the lineItem.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.string.class"
          },
          "title" : {
            "type" : "string",
            "description" : "The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "resultValueMin" : {
            "type" : "number",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.float.class"
          },
          "academicSession" : {
            "$ref" : "#/components/schemas/AcadSessionGUIDRef"
          },
          "scoreScale" : {
            "$ref" : "#/components/schemas/ScoreScaleGUIDRef"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "school" : {
            "$ref" : "#/components/schemas/OrgGUIDRef"
          },
          "category" : {
            "$ref" : "#/components/schemas/CategoryGUIDRef"
          },
          "class" : {
            "$ref" : "#/components/schemas/ClassGUIDRef"
          },
          "gradingPeriod" : {
            "$ref" : "#/components/schemas/AcadSessionGUIDRef"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.lineitem.class"
      },
      "LearningObjectiveSet" : {
        "required" : [ "source", "learningObjectiveIds" ],
        "type" : "object",
        "properties" : {
          "source" : {
            "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
            "anyOf" : [ {
              "type" : "string",
              "enum" : [ "case", "unknown" ]
            }, {
              "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
              "type" : "string"
            } ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.sourceextenum.class"
          },
          "learningObjectiveIds" : {
            "minItems" : 1,
            "type" : "array",
            "description" : "The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
            "items" : {
              "type" : "string"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.learningobjectiveset.class"
      },
      "ScoreScale" : {
        "required" : [ "title", "type", "class", "scoreScaleValue", "sourcedId", "status", "dateLastModified" ],
        "type" : "object",
        "properties" : {
          "sourcedId" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.derived.guid.class"
          },
          "scoreScaleValue" : {
            "minItems" : 1,
            "type" : "array",
            "description" : "The set of mappings for this score scale.",
            "items" : {
              "$ref" : "#/components/schemas/ScoreScaleValue"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.scorescalevalue.class"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/Metadata"
          },
          "dateLastModified" : {
            "type" : "string",
            "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.",
            "format" : "date-time",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.datetime.class"
          },
          "course" : {
            "$ref" : "#/components/schemas/CourseGUIDRef"
          },
          "title" : {
            "type" : "string",
            "description" : "The human readable title for the score scale mapping.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "type" : {
            "type" : "string",
            "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.",
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class"
          },
          "class" : {
            "$ref" : "#/components/schemas/ClassGUIDRef"
          },
          "status" : {
            "type" : "string",
            "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'.",
            "enum" : [ "active", "tobedeleted" ],
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.basestatusenum.class"
          }
        },
        "additionalProperties" : false,
        "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.scorescale.class"
      },
      "SingleAssessmentLineItem" : {
        "required" : [ "assessmentLineItem" ],
        "type" : "object",
        "properties" : {
          "assessmentLineItem" : {
            "$ref" : "#/components/schemas/AssessmentLineItem"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for a single assessment lineItem instance for a message payload.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.singleassessmentlineitem.class"
      },
      "AssessmentLineItemSet" : {
        "type" : "object",
        "properties" : {
          "assessmentLineItems" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/AssessmentLineItem"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.assessmentlineitem.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.assessmentlineitemset.class"
      },
      "imsx_CodeMinor" : {
        "required" : [ "imsx_codeMinorField" ],
        "type" : "object",
        "properties" : {
          "imsx_codeMinorField" : {
            "minItems" : 1,
            "type" : "array",
            "description" : "Each reported code minor status code.",
            "items" : {
              "$ref" : "#/components/schemas/imsx_CodeMinorField"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.imsx_codeminorfield.class"
          }
        },
        "additionalProperties" : false,
        "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.imsx_codeminor.class"
      },
      "ScoreScaleSet" : {
        "type" : "object",
        "properties" : {
          "scoreScales" : {
            "minItems" : 0,
            "type" : "array",
            "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "items" : {
              "$ref" : "#/components/schemas/ScoreScale"
            },
            "x-srcprop-pid" : "org.1edtech.orgradebook.v1p2.scorescale.class"
          }
        },
        "additionalProperties" : false,
        "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.",
        "x-class-pid" : "org.1edtech.orgradebook.v1p2.scorescaleset.class"
      }
    },
    "parameters" : {
      "filter" : {
        "name" : "filter",
        "in" : "query",
        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
        "required" : false,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "type" : "string"
        }
      },
      "offset" : {
        "name" : "offset",
        "in" : "query",
        "description" : "The number of the first record to be supplied in the segmented response message.",
        "required" : false,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "minimum" : 0,
          "type" : "integer",
          "format" : "int32"
        }
      },
      "limit" : {
        "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,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "minimum" : 1,
          "type" : "integer",
          "format" : "int32"
        }
      },
      "orderBy" : {
        "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,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        }
      },
      "sort" : {
        "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,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "type" : "string"
        }
      },
      "fields" : {
        "name" : "fields",
        "in" : "query",
        "description" : "To identify the range of fields that should be supplied in the response message.",
        "required" : false,
        "allowEmptyValue" : false,
        "style" : "form",
        "schema" : {
          "type" : "string"
        }
      }
    },
    "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."
            }
          }
        }
      }
    }
  }
}

Listing of the OpenAPI (YAML) File

openapi: 3.0.1
info:
  title: OpenAPI schema for OneRoster Gradebook Service
  description: "The OneRoster Gradebook Service enables the exchange of K-12 oriented\
    \ gradebook data. This exchange is typically between the Student Information System\
    \ and the learning delivery systems. The service provides a number of operations,\
    \ collected as several endpoints, primarily based upon read, create and delete\
    \ of the first class objects. "
  termsOfService: https://www.imsglobal.org/license.html
  contact:
    name: IMS Global
    url: https://www.imsglobal.org
    email: support@imsglobal.org
  license:
    name: IMS Global Specification Document License
    url: https://www.imsglobal.org/license.html
  version: "1.2"
  x-status: Final
  x-model-pid: org.1edtech.orgradebook.v1p2.model
  x-service-pid: org.1edtech.orgradebook.v1p2.rest.servicemodel
  x-src-operation-count: 35
  x-oas-operation-count: 35
servers:
- url: https://example.org/ims/oneroster/gradebook/v1p2
  description: The above Server URL should be changed to the actual server location.
tags:
- 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: 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: LineItemsManagement
  description: This enables the management of lineItems i.e. the set of results for
    the assessment of some activity.
- name: ScoreScalesManagement
  description: This enables the management of scoreScales i.e. the set of scales for
    the results and 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: 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.
paths:
  /categories:
    get:
      tags:
      - CategoriesManagement
      summary: The REST GET operation for the getAllCategories() API call.
      description: Get all of the lineItem categories on the service provider.
      operationId: getAllCategories
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllCategories() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CategoriesSet"
        default:
          description: The default response to the getAllCategories() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllCategories() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllCategories() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllCategories() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllCategories()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllCategories()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllCategories()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getallcategories.operation
  /categories/{sourcedId}:
    get:
      tags:
      - CategoriesManagement
      summary: The REST GET operation for the getCategory() API call.
      description: Get a specific lineItem category on the service provider. If the
        corresponding record cannot be located then an 'unknown' error code is returned.
      operationId: getCategory
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for this category."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleCategory"
        default:
          description: The default response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getCategory() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getcategory.operation
    put:
      tags:
      - CategoriesManagement
      summary: The REST PUT operation for the putCategory() API call.
      description: To create a new lineItem category. The associated sourcedId for
        this new record is supplied by the requesting system.
      operationId: putCategory
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new category."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putCategory operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleCategory"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putCategory() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putCategory() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putcategory.operation
    delete:
      tags:
      - CategoriesManagement
      summary: The REST DELETE operation for the deleteCategory() API call.
      description: Delete a specific lineItem category on the service provider. If
        the corresponding record cannot be located then an 'unknown' error code is
        returned.
      operationId: deleteCategory
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the category to be deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteCategory() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteCategory() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteCategory() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteCategory()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deletecategory.operation
  /classes/{classSourcedId}/results:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getResultsForClass() API call.
      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.
      operationId: getResultsForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getResultsForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResultSet"
        default:
          description: The default response to the getResultsForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getResultsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getResultsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getResultsForClass() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getResultsForClass() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getResultsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getresultsforclass.operation
  /classes/{classSourcedId}/lineItems:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getLineItemsForClass() API call.
      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.
      operationId: getLineItemsForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getLineItemsForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LineItemSet"
        default:
          description: The default response to the getLineItemsForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getlineitemsforclass.operation
    post:
      tags:
      - ClassesManagement
      summary: The REST POST operation for the postLineItemsForClass() API call.
      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.
      operationId: postLineItemsForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the postLineItemsForClass operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LineItemSet"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the postLineItemsForClass() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GUIDPairSet"
        default:
          description: The default response to the postLineItemsForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the postLineItemsForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.postlineitemsforclass.operation
  /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getResultsForLineItemForClass() API
        call.
      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.
      operationId: getResultsForLineItemForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - name: lineItemSourcedId
        in: path
        description: "The unique identifier, GUID, for the lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResultSet"
        default:
          description: The default response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForLineItemForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getresultsforlineitemforclass.operation
  /classes/{classSourcedId}/students/{studentSourcedId}/results:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getResultsForStudentForClass() API call.
      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.
      operationId: getResultsForStudentForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - name: studentSourcedId
        in: path
        description: "The unique identifier, GUID, for the student."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResultSet"
        default:
          description: The default response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getResultsForStudentForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getresultsforstudentforclass.operation
  /classes/{classSourcedId}/categories:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getCategoriesForClass() API call.
      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.
      operationId: getCategoriesForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getCategoriesForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CategoriesSet"
        default:
          description: The default response to the getCategoriesForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getCategoriesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getcategoriesforclass.operation
  /classes/{classSourcedId}/scoreScales:
    get:
      tags:
      - ClassesManagement
      summary: The REST GET operation for the getScoreScalesForClass() API call.
      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.
      operationId: getScoreScalesForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getScoreScalesForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScoreScaleSet"
        default:
          description: The default response to the getScoreScalesForClass() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScalesForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getscorescalesforclass.operation
  /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results:
    post:
      tags:
      - ClassesManagement
      summary: The REST POST operation for the postResultsForAcademicSessionForClass()
        API call.
      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.
      operationId: postResultsForAcademicSessionForClass
      parameters:
      - name: classSourcedId
        in: path
        description: "The unique identifier, GUID, for the class."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - name: academicSessionSourcedId
        in: path
        description: "The unique identifier, GUID, for the academic session."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the postResultsForAcademicSessionForClass
          operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResultSet"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GUIDPairSet"
        default:
          description: The default response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the postResultsForAcademicSessionForClass()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.postresultsforacademicsessionforclass.operation
  /results:
    get:
      tags:
      - ResultsManagement
      summary: The REST GET operation for the getAllResults() API call.
      description: Get all of the results on the service provider.
      operationId: getAllResults
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllResults() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResultSet"
        default:
          description: The default response to the getAllResults() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllResults() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllResults() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllResults() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getallresults.operation
  /results/{sourcedId}:
    get:
      tags:
      - ResultsManagement
      summary: The REST GET operation for the getResult() API call.
      description: Get a specific result on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: getResult
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for this result."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleResult"
        default:
          description: The default response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getresult.operation
    put:
      tags:
      - ResultsManagement
      summary: The REST PUT operation for the putResult() API call.
      description: To create a new result. The associated sourcedId for this new record
        is supplied by the requesting system.
      operationId: putResult
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new result."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putResult operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleResult"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putResult() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putresult.operation
    delete:
      tags:
      - ResultsManagement
      summary: The REST DELETE operation for the deleteResult() API call.
      description: Delete a specific result on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: deleteResult
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the result to be deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteResult() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deleteresult.operation
  /lineItems:
    get:
      tags:
      - LineItemsManagement
      summary: The REST GET operation for the getAllLineItems() API call.
      description: Get all of the Line Items on the service provider.
      operationId: getAllLineItems
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllLineItems() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LineItemSet"
        default:
          description: The default response to the getAllLineItems() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllLineItems() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllLineItems() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllLineItems() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getalllineitems.operation
  /lineItems/{sourcedId}:
    get:
      tags:
      - LineItemsManagement
      summary: The REST GET operation for the getLineItem() API call.
      description: Get a specific LineItem on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: getLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for this lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleLineItem"
        default:
          description: The default response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getLineItem() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getlineitem.operation
    put:
      tags:
      - LineItemsManagement
      summary: The REST PUT operation for the putLineItem() API call.
      description: To create a new lineItem. The associated sourcedId for this new
        record is supplied by the requesting system.
      operationId: putLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putLineItem operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleLineItem"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putLineItem() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putLineItem() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putlineitem.operation
    delete:
      tags:
      - LineItemsManagement
      summary: The REST DELETE operation for the deleteLineItem() API call.
      description: Delete a specific lineItem on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: deleteLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the lineItem to be deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteLineItem() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteLineItem() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deletelineitem.operation
  /lineItems/{lineItemSourcedId}/results:
    post:
      tags:
      - LineItemsManagement
      summary: The REST POST operation for the postResultsForLineItem() API call.
      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.
      operationId: postResultsForLineItem
      parameters:
      - name: lineItemSourcedId
        in: path
        description: "The unique identifier, GUID, for the lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the postResultsForLineItem operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResultSet"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GUIDPairSet"
        default:
          description: The default response to the postResultsForLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the postResultsForLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.postresultsforlineitem.operation
  /scoreScales:
    get:
      tags:
      - ScoreScalesManagement
      summary: The REST GET operation for the getAllScoreScales() API call.
      description: Get all of the ScoreScales on the service provider.
      operationId: getAllScoreScales
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllScoreScales() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScoreScaleSet"
        default:
          description: The default response to the getAllScoreScales() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllScoreScales() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllScoreScales()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllScoreScales() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllScoreScales()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllScoreScales()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllScoreScales()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getallscorescales.operation
  /scoreScales/{sourcedId}:
    get:
      tags:
      - ScoreScalesManagement
      summary: The REST GET operation for the getScoreScale() API call.
      description: Get a specific scoreScale on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: getScoreScale
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for this scoreScale."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleScoreScale"
        default:
          description: The default response to the getScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getScoreScale() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getscorescale.operation
    put:
      tags:
      - ScoreScalesManagement
      summary: The REST PUT operation for the putScoreScale() API call.
      description: To create a new scoreScale. The associated sourcedId for this new
        record is supplied by the requesting system.
      operationId: putScoreScale
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new scoreScale."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putScoreScale operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleScoreScale"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putScoreScale() API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putScoreScale() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putscorescale.operation
    delete:
      tags:
      - ScoreScalesManagement
      summary: The REST DELETE operation for the deleteScoreScale() API call.
      description: Delete a specific scoreScale on the service provider. If the corresponding
        record cannot be located then an 'unknown' error code is returned.
      operationId: deleteScoreScale
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the scoreScale to be deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteScoreScale() API
            call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteScoreScale() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteScoreScale() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteScoreScale() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteScoreScale() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteScoreScale()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deletescorescale.operation
  /schools/{schoolSourcedId}/scoreScales:
    get:
      tags:
      - SchoolsManagement
      summary: The REST GET operation for the getScoreScalesForSchool() API call.
      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.
      operationId: getScoreScalesForSchool
      parameters:
      - name: schoolSourcedId
        in: path
        description: "The unique identifier, GUID, for the school."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getScoreScalesForSchool() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScoreScaleSet"
        default:
          description: The default response to the getScoreScalesForSchool() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getScoreScalesForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getscorescalesforschool.operation
  /schools/{schoolSourcedId}/lineItems:
    post:
      tags:
      - SchoolsManagement
      summary: The REST POST operation for the postLineItemsForSchool() API call.
      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.
      operationId: postLineItemsForSchool
      parameters:
      - name: schoolSourcedId
        in: path
        description: "The unique identifier, GUID, for the school."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the postLineItemsForSchool operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LineItemSet"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GUIDPairSet"
        default:
          description: The default response to the postLineItemsForSchool() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the postLineItemsForSchool()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.postlineitemsforschool.operation
  /assessmentLineItems:
    get:
      tags:
      - AssessmentLineItemsManagement
      summary: The REST GET operation for the getAllAssessmentLineItems() API call.
      description: Get all of the Assessment Line Items on the service provider.
      operationId: getAllAssessmentLineItems
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllAssessmentLineItems() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentLineItemSet"
        default:
          description: The default response to the getAllAssessmentLineItems() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllAssessmentLineItems()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getallassessmentlineitems.operation
  /assessmentLineItems/{sourcedId}:
    get:
      tags:
      - AssessmentLineItemsManagement
      summary: The REST GET operation for the getAssessmentLineItem() API call.
      description: Get a specific Assessment LineItem on the service provider. If
        the corresponding record cannot be located then an 'unknown' error code is
        returned.
      operationId: getAssessmentLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for this assessment lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAssessmentLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleAssessmentLineItem"
        default:
          description: The default response to the getAssessmentLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getassessmentlineitem.operation
    put:
      tags:
      - AssessmentLineItemsManagement
      summary: The REST PUT operation for the putAssessmentLineItem() API call.
      description: To create a new Assessment LineItem. The associated sourcedId for
        this new record is supplied by the requesting system.
      operationId: putAssessmentLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new assessment\
          \ lineItem."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putAssessmentLineItem operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleAssessmentLineItem"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putAssessmentLineItem() API
            call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putAssessmentLineItem() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putassessmentlineitem.operation
    delete:
      tags:
      - AssessmentLineItemsManagement
      summary: The REST DELETE operation for the deleteAssessmentLineItem() API call.
      description: Delete a specific Assessment LineItem on the service provider.
        If the corresponding record cannot be located then an 'unknown' error code
        is returned.
      operationId: deleteAssessmentLineItem
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the assessment lineItem to\
          \ be deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteAssessmentLineItem() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteAssessmentLineItem()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deleteassessmentlineitem.operation
  /assessmentResults:
    get:
      tags:
      - AssessmentResultsManagement
      summary: The REST GET operation for the getAllAssessmentResults() API call.
      description: Get all of the Assessment Results on the service provider.
      operationId: getAllAssessmentResults
      parameters:
      - $ref: "#/components/parameters/limit"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/sort"
      - $ref: "#/components/parameters/orderBy"
      - $ref: "#/components/parameters/filter"
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAllAssessmentResults() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentResultSet"
        default:
          description: The default response to the getAllAssessmentResults() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllAssessmentResults()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getallassessmentresults.operation
  /assessmentResults/{sourcedId}:
    get:
      tags:
      - AssessmentResultsManagement
      summary: The REST GET operation for the getAssessmentResult() API call.
      description: Get a specific Assessment Result on the service provider. If the
        corresponding record cannot be located then an 'unknown' error code is returned.
      operationId: getAssessmentResult
      parameters:
      - name: sourcedId
        in: path
        description: "Tthe unique identifier, GUID, for this assessment result."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: "#/components/parameters/fields"
      responses:
        "200":
          description: The 200 (OK) response to the getAssessmentResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SingleAssessmentResult"
        default:
          description: The default response to the getAssessmentResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "400":
          description: The 400 (BAD_REQUEST) response to the getAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the getAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the getAssessmentResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the getAssessmentResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the getAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the getAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.getassessmentresult.operation
    put:
      tags:
      - AssessmentResultsManagement
      summary: The REST PUT operation for the putAssessmentResult() API call.
      description: To create a new Assessment Result. The associated sourcedId for
        this new record is supplied by the requesting system.
      operationId: putAssessmentResult
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, to be allocated to this new assessment\
          \ result."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      requestBody:
        description: The request body for the putAssessmentResult operation.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SingleAssessmentResult"
        required: true
      responses:
        "201":
          description: The 201 (CREATED) response to the putAssessmentResult() API
            call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the putAssessmentResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the putAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the putAssessmentResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the putAssessmentResult() API
            call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the putAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the putAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the putAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.putassessmentresult.operation
    delete:
      tags:
      - AssessmentResultsManagement
      summary: The REST DELETE operation for the deleteAssessmentResult() API call.
      description: Delete a specific Assessment Result on the service provider. If
        the corresponding record cannot be located then an 'unknown' error code is
        returned.
      operationId: deleteAssessmentResult
      parameters:
      - name: sourcedId
        in: path
        description: "The unique identifier, GUID, for the assessment result to be\
          \ deleted."
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "204":
          description: The 204 (NO_CONTENT) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                type: string
        default:
          description: The default response to the deleteAssessmentResult() API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "401":
          description: The 401 (UNAUTHORIZED) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "403":
          description: The 403 (FORBIDDEN) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "404":
          description: The 404 (NOT_FOUND) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "422":
          description: The 422 (UNPROCESSABLE_ENTTITY) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "429":
          description: The 429 (TOO_MANY_REQUESTS) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
        "500":
          description: The 500 (INTERNAL_SERVER_ERROR) response to the deleteAssessmentResult()
            API call.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/imsx_StatusInfo"
      security:
      - OAuth2CC:
        - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
      x-operation-pid: org.1edtech.orgradebook.v1p2.rest.deleteassessmentresult.operation
components:
  schemas:
    UserGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'user'.
          enum:
          - user
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.userguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'User' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.userguidref.class
    AssessmentResultSet:
      type: object
      properties:
        assessmentResults:
          minItems: 0
          type: array
          description: The collection of assessment result instances. The order is
            not significant. The corresponding query constraints may result in no
            instances being returned.
          items:
            $ref: "#/components/schemas/AssessmentResult"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.assessmentresult.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.assessmentresultset.class
    OrgGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. an 'org'.
          enum:
          - org
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.orgguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'Org' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.orgguidref.class
    AssessmentLineItemGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. an 'assessmentLineItem'.
          enum:
          - assessmentLineItem
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.assessmentlineitemguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'AssessmentLineItem'
        object that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.assessmentlineitemguidref.class
    Category:
      required:
      - title
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        metadata:
          $ref: "#/components/schemas/Metadata"
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        weight:
          type: number
          description: Total weight of this grading category in calculation of the
            course final score.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        title:
          type: string
          description: The human readable title for the category.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      description: 'A Category is the name given to a grouping of line items (line
        items being equivalent to assignments which students will complete). '
      x-class-pid: org.1edtech.orgradebook.v1p2.category.class
    CourseGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'course'.
          enum:
          - course
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.courseguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'Course' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.courseguidref.class
    LineItemGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'lineItem'.
          enum:
          - lineItem
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.lineitemguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'LineItem' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.lineitemguidref.class
    SingleAssessmentResult:
      required:
      - assessmentResult
      type: object
      properties:
        assessmentResult:
          $ref: "#/components/schemas/AssessmentResult"
      additionalProperties: false
      description: This is the container for a single assessment result instance for
        a message payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singleassessmentresult.class
    LineItemSet:
      type: object
      properties:
        lineItems:
          minItems: 0
          type: array
          description: The collection of lineItem instances. The order is not significant.
            The corresponding query constraints may result in no instances being returned.
          items:
            $ref: "#/components/schemas/LineItem"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.lineitem.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.lineitemset.class
    SingleLineItem:
      required:
      - lineItem
      type: object
      properties:
        lineItem:
          $ref: "#/components/schemas/LineItem"
      additionalProperties: false
      description: This is the container for a single lineItem instance for a message
        payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singlelineitem.class
    GUIDPairSet:
      type: object
      properties:
        sourcedIdPairs:
          minItems: 0
          type: array
          description: The set of sourcedId pairs. The order is not significant as
            each pair contains the information between the original/new values.
          items:
            $ref: "#/components/schemas/GUIDPair"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.guidpair.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.guidpairset.class
    Metadata:
      type: object
      properties: {}
      additionalProperties: true
      description: The container for the proprietary extensions.
      x-class-pid: org.1edtech.orgradebook.v1p2.metadata.class
    AcadSessionGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. an 'academicSession'.
          enum:
          - academicSession
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.acadsessionguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'Academic Session'
        object that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.acadsessionguidref.class
    LearningObjectiveScoreSet:
      required:
      - source
      - learningObjectiveResults
      type: object
      properties:
        learningObjectiveResults:
          minItems: 1
          type: array
          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.
          items:
            $ref: "#/components/schemas/LearningObjectiveResults"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.learningobjectiveresults.class
        source:
          description: The source responsible for creating the learning objective
            identifiers. The permitted values are from an extensible vocabulary.
          anyOf:
          - type: string
            enum:
            - case
            - unknown
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.sourceextenum.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class
    imsx_CodeMinorField:
      required:
      - imsx_codeMinorFieldName
      - imsx_codeMinorFieldValue
      type: object
      properties:
        imsx_codeMinorFieldName:
          type: string
          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'.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        imsx_codeMinorFieldValue:
          type: string
          description: The code minor status code (this is a value from the corresponding
            enumerated vocabulary).
          enum:
          - fullsuccess
          - invalid_filter_field
          - invalid_selection_field
          - invaliddata
          - unauthorisedrequest
          - internal_server_error
          - server_busy
          - deletefailure
          - unknownobject
          - forbidden
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.imsx_codeminorvalueenum.class
      additionalProperties: false
      description: This is the container for a single code minor status code.
      x-class-pid: org.1edtech.orgradebook.v1p2.imsx_codeminorfield.class
    ClassGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'class'.
          enum:
          - class
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.classguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'Class' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.classguidref.class
    Result:
      required:
      - lineItem
      - student
      - scoreStatus
      - scoreDate
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        metadata:
          $ref: "#/components/schemas/Metadata"
        learningObjectiveSet:
          minItems: 0
          type: array
          description: The set of identifiers for the learning objectives to which
            this result is aligned. Any number groups of learning objectives can be
            assigned.
          items:
            $ref: "#/components/schemas/LearningObjectiveScoreSet"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class
        inProgress:
          type: string
          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.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        student:
          $ref: "#/components/schemas/UserGUIDRef"
        scoreScale:
          $ref: "#/components/schemas/ScoreScaleGUIDRef"
        score:
          type: number
          description: The score for the result. If a scoreScale is assigned then
            the value must align with the scale.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        textScore:
          type: string
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        incomplete:
          type: string
          description: This is used to indicate that the student's work product has
            been submitted but it is deemed incomplete by the teacher.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        lineItem:
          $ref: "#/components/schemas/LineItemGUIDRef"
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        late:
          type: string
          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.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        missing:
          type: string
          description: This is used to indicate that the student's work product as
            not been submitted.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        scoreStatus:
          description: The status of the score. The value is from an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - exempt
            - fully graded
            - not submitted
            - partially graded
            - submitted
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.scorestatusextenum.class
        comment:
          type: string
          description: A human readable comment about the score.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.string.class
        class:
          $ref: "#/components/schemas/ClassGUIDRef"
        scoreDate:
          type: string
          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]."
          format: date
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.date.class
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      description: This is the container for the Result record.  A result consists
        of the assigned score plus the context for that score.
      x-class-pid: org.1edtech.orgradebook.v1p2.result.class
    SingleCategory:
      required:
      - category
      type: object
      properties:
        category:
          $ref: "#/components/schemas/Category"
      additionalProperties: false
      description: This is the container for a single category instance for a message
        payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singlecategory.class
    ScoreScaleValue:
      required:
      - itemValueLHS
      - itemValueRHS
      type: object
      properties:
        itemValueRHS:
          type: string
          description: The right hand side value of the mapping relationship  i.e.
            the equivalent value to the reference point defined in the LHS.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        itemValueLHS:
          type: string
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
      additionalProperties: false
      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."
      x-class-pid: org.1edtech.orgradebook.v1p2.scorescalevalue.class
    imsx_StatusInfo:
      required:
      - imsx_codeMajor
      - imsx_severity
      type: object
      properties:
        imsx_CodeMinor:
          $ref: "#/components/schemas/imsx_CodeMinor"
        imsx_codeMajor:
          type: string
          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.
          enum:
          - success
          - processing
          - failure
          - unsupported
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.imsx_codemajorenum.class
        imsx_description:
          type: string
          description: A human readable description supplied by the entity creating
            the status code information.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.string.class
        imsx_severity:
          type: string
          description: The severity value (from the corresponding enumerated vocabulary).
            See Appendix B for further information on the interpretation of this set
            of codes.
          enum:
          - status
          - warning
          - error
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.imsx_severityenum.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.imsx_statusinfo.class
    CategoryGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'category'.
          enum:
          - category
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.categoryguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'Category' object
        that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.categoryguidref.class
    ResultSet:
      type: object
      properties:
        results:
          minItems: 0
          type: array
          description: The collection of result instances. The order is not significant.
            The corresponding query constraints may result in no instances being returned.
          items:
            $ref: "#/components/schemas/Result"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.result.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.resultset.class
    GUIDPair:
      required:
      - suppliedSourcedId
      - allocatedSourcedId
      type: object
      properties:
        suppliedSourcedId:
          type: string
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        allocatedSourcedId:
          type: string
          description: The sourcedId that has been allocated by the system on which
            the new record has been created.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.guidpair.class
    AssessmentResult:
      required:
      - assessmentLineItem
      - student
      - scoreDate
      - scoreStatus
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        assessmentLineItem:
          $ref: "#/components/schemas/AssessmentLineItemGUIDRef"
        metadata:
          $ref: "#/components/schemas/Metadata"
        learningObjectiveSet:
          minItems: 0
          type: array
          description: The set of identifiers for the learning objectives to which
            this result is aligned. Any number groups of learning objectives can be
            assigned.
          items:
            $ref: "#/components/schemas/LearningObjectiveScoreSet"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.learningobjectivescoreset.class
        inProgress:
          type: string
          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.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        student:
          $ref: "#/components/schemas/UserGUIDRef"
        scoreScale:
          $ref: "#/components/schemas/ScoreScaleGUIDRef"
        score:
          type: number
          description: The score for the result. If a scoreScale is assigned then
            the value must align with the scale.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        textScore:
          type: string
          description: An optional non-numeric score value. If a scoreScale is assigned
            then the value must align with the scale.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        incomplete:
          type: string
          description: This is used to indicate that the student's work product has
            been submitted but it is deemed incomplete by the teacher.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        scorePercentile:
          type: number
          description: The percentile rank of a score is the percentage of scores
            in its frequency distribution that are equal to or lower than it.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        late:
          type: string
          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.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        missing:
          type: string
          description: This is used to indicate that the student's work product as
            not been submitted.
          enum:
          - "true"
          - "false"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.booleantruefalseenum.class
        scoreStatus:
          description: The status of the score. The value is from an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - exempt
            - fully graded
            - not submitted
            - partially graded
            - submitted
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.scorestatusextenum.class
        comment:
          type: string
          description: A human readable comment about the score.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.string.class
        scoreDate:
          type: string
          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]."
          format: date
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.date.class
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      description: This is the container for the AssessmentResult record.  An assessment
        result consists of the assigned score plus the context for that score.
      x-class-pid: org.1edtech.orgradebook.v1p2.assessmentresult.class
    LearningObjectiveResults:
      required:
      - learningObjectiveId
      type: object
      properties:
        score:
          type: number
          description: 'The optional mastery score supplied as a numeric value. '
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        textScore:
          type: string
          description: 'The optional mastery score supplied in a non-numeric form. '
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        learningObjectiveId:
          type: string
          description: The unique identifier for the associated learning objective.
            If this is a CASE identifier it MUST be a valid UUID.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
      additionalProperties: false
      description: This is the container for a learning objective identifier. This
        also allows a mastery score to be aligned with the learning objective.
      x-class-pid: org.1edtech.orgradebook.v1p2.learningobjectiveresults.class
    CategoriesSet:
      type: object
      properties:
        categories:
          minItems: 0
          type: array
          description: The collection of category instances. The order is not significant.
            The corresponding query constraints may result in no instances being returned.
          items:
            $ref: "#/components/schemas/Category"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.category.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.categoriesset.class
    ScoreScaleGUIDRef:
      required:
      - type
      - href
      - sourcedId
      type: object
      properties:
        sourcedId:
          type: string
          description: The globally unique identifier of the object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        href:
          type: string
          description: The URI for the type of object being referenced.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.anyuri.class
        type:
          type: string
          description: The type of object being referenced i.e. a 'scoreScale'.
          enum:
          - scoreScale
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.scorescaleguidreftypeenum.class
      additionalProperties: false
      description: This is the container for reference to a OneRoster 'ScoreScale'
        object that has an allocated sourcedId (GUID).
      x-class-pid: org.1edtech.orgradebook.v1p2.scorescaleguidref.class
    SingleResult:
      required:
      - result
      type: object
      properties:
        result:
          $ref: "#/components/schemas/Result"
      additionalProperties: false
      description: This is the container for a single result instance for a message
        payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singleresult.class
    AssessmentLineItem:
      required:
      - title
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        metadata:
          $ref: "#/components/schemas/Metadata"
        resultValueMax:
          type: number
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        learningObjectiveSet:
          minItems: 0
          type: array
          description: The set of identifiers for the learning objectives to which
            this assessment is aligned. Any number groups of learning objectives can
            be assigned.
          items:
            $ref: "#/components/schemas/LearningObjectiveSet"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.learningobjectiveset.class
        description:
          type: string
          description: A human readable description of the usage of the assessment
            lineItem.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.string.class
        parentAssessmentLineItem:
          $ref: "#/components/schemas/AssessmentLineItemGUIDRef"
        title:
          type: string
          description: "The title, human readable, for the assessment lineItem.  This\
            \ should allow the assessment lineItem to be distinguished from its peer\
            \ assessment lineItems."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        class:
          $ref: "#/components/schemas/ClassGUIDRef"
        resultValueMin:
          type: number
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        scoreScale:
          $ref: "#/components/schemas/ScoreScaleGUIDRef"
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.assessmentlineitem.class
    SingleScoreScale:
      required:
      - scoreScale
      type: object
      properties:
        scoreScale:
          $ref: "#/components/schemas/ScoreScale"
      additionalProperties: false
      description: This is the container for a single scoreScale instance for a message
        payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singlescorescale.class
    LineItem:
      required:
      - title
      - assignDate
      - dueDate
      - class
      - school
      - category
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        metadata:
          $ref: "#/components/schemas/Metadata"
        resultValueMax:
          type: number
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        learningObjectiveSet:
          minItems: 0
          type: array
          description: The set of identifiers for the learning objectives to which
            this assessment is aligned. Any number groups of learning objectives can
            be assigned.
          items:
            $ref: "#/components/schemas/LearningObjectiveSet"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.learningobjectiveset.class
        assignDate:
          type: string
          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]."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        dueDate:
          type: string
          description: "The date/time by which the assignment must be completed and\
            \ submitted. This has the dateTime format as defined in [ISO 8601]."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        description:
          type: string
          description: A human readable description of the usage of the lineItem.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.string.class
        title:
          type: string
          description: "The title, human readable, for the lineItem.  This should\
            \ allow the lineItem to be distinguished from its peer lineItems."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        resultValueMin:
          type: number
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.float.class
        academicSession:
          $ref: "#/components/schemas/AcadSessionGUIDRef"
        scoreScale:
          $ref: "#/components/schemas/ScoreScaleGUIDRef"
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        school:
          $ref: "#/components/schemas/OrgGUIDRef"
        category:
          $ref: "#/components/schemas/CategoryGUIDRef"
        class:
          $ref: "#/components/schemas/ClassGUIDRef"
        gradingPeriod:
          $ref: "#/components/schemas/AcadSessionGUIDRef"
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.lineitem.class
    LearningObjectiveSet:
      required:
      - source
      - learningObjectiveIds
      type: object
      properties:
        source:
          description: The source responsible for creating the learning objective
            identifiers. The permitted values are from an extensible vocabulary.
          anyOf:
          - type: string
            enum:
            - case
            - unknown
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.sourceextenum.class
        learningObjectiveIds:
          minItems: 1
          type: array
          description: The set of unique identifiers for the associated learning objectives.
            If these are CASE identifiers they MUST be valid UUIDs.
          items:
            type: string
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
      additionalProperties: false
      description: This is the container for the set of learning objective identifiers
        that are from a single source responsible for creating those identifiers.
      x-class-pid: org.1edtech.orgradebook.v1p2.learningobjectiveset.class
    ScoreScale:
      required:
      - title
      - type
      - class
      - scoreScaleValue
      - sourcedId
      - status
      - dateLastModified
      type: object
      properties:
        sourcedId:
          type: string
          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."
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.derived.guid.class
        scoreScaleValue:
          minItems: 1
          type: array
          description: The set of mappings for this score scale.
          items:
            $ref: "#/components/schemas/ScoreScaleValue"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.scorescalevalue.class
        metadata:
          $ref: "#/components/schemas/Metadata"
        dateLastModified:
          type: string
          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."
          format: date-time
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.datetime.class
        course:
          $ref: "#/components/schemas/CourseGUIDRef"
        title:
          type: string
          description: The human readable title for the score scale mapping.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        type:
          type: string
          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.
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.primitive.normalizedstring.class
        class:
          $ref: "#/components/schemas/ClassGUIDRef"
        status:
          type: string
          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'."
          enum:
          - active
          - tobedeleted
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.basestatusenum.class
      additionalProperties: false
      description: The container for the definition Score Scale mapping i.e. the relationship
        between two score scales.
      x-class-pid: org.1edtech.orgradebook.v1p2.scorescale.class
    SingleAssessmentLineItem:
      required:
      - assessmentLineItem
      type: object
      properties:
        assessmentLineItem:
          $ref: "#/components/schemas/AssessmentLineItem"
      additionalProperties: false
      description: This is the container for a single assessment lineItem instance
        for a message payload.
      x-class-pid: org.1edtech.orgradebook.v1p2.singleassessmentlineitem.class
    AssessmentLineItemSet:
      type: object
      properties:
        assessmentLineItems:
          minItems: 0
          type: array
          description: The collection of assessment lineItem instances. The order
            is not significant. The corresponding query constraints may result in
            no instances being returned.
          items:
            $ref: "#/components/schemas/AssessmentLineItem"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.assessmentlineitem.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.assessmentlineitemset.class
    imsx_CodeMinor:
      required:
      - imsx_codeMinorField
      type: object
      properties:
        imsx_codeMinorField:
          minItems: 1
          type: array
          description: Each reported code minor status code.
          items:
            $ref: "#/components/schemas/imsx_CodeMinorField"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.imsx_codeminorfield.class
      additionalProperties: false
      description: This is the container for the set of code minor status codes reported
        in the responses from the Service Provider.
      x-class-pid: org.1edtech.orgradebook.v1p2.imsx_codeminor.class
    ScoreScaleSet:
      type: object
      properties:
        scoreScales:
          minItems: 0
          type: array
          description: The collection of scoreScale instances. The order is not significant.
            The corresponding query constraints may result in no instances being returned.
          items:
            $ref: "#/components/schemas/ScoreScale"
          x-srcprop-pid: org.1edtech.orgradebook.v1p2.scorescale.class
      additionalProperties: false
      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.
      x-class-pid: org.1edtech.orgradebook.v1p2.scorescaleset.class
  parameters:
    filter:
      name: filter
      in: query
      description: The filtering rules to be applied when identifying the records
        to be supplied in the response message.
      required: false
      allowEmptyValue: false
      style: form
      schema:
        type: string
    offset:
      name: offset
      in: query
      description: The number of the first record to be supplied in the segmented
        response message.
      required: false
      allowEmptyValue: false
      style: form
      schema:
        minimum: 0
        type: integer
        format: int32
    limit:
      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
      allowEmptyValue: false
      style: form
      schema:
        minimum: 1
        type: integer
        format: int32
    orderBy:
      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
      allowEmptyValue: false
      style: form
      schema:
        type: string
        enum:
        - asc
        - desc
    sort:
      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
      allowEmptyValue: false
      style: form
      schema:
        type: string
    fields:
      name: fields
      in: query
      description: To identify the range of fields that should be supplied in the
        response message.
      required: false
      allowEmptyValue: false
      style: form
      schema:
        type: string
  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.

JSON Schema Listings

This Section is NORMATIVE.

JSON Schemas for Payload Validation

AssessmentLineItemSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "AssessmentLineItemSet",
  "title" : "JSON Schema for the AssessmentLineItemSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/AssessmentLineItem"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "AssessmentLineItem" : {
      "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" : {
        "title" : {
          "description" : "The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "description" : {
          "description" : "A human readable description of the usage of the assessment lineItem.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "parentAssessmentLineItem" : {
          "$ref" : "#/$defs/AssessmentLineItemGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveSet"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveIds" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "description" : "The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
            "$comment" : "Origin: NormalizedString (PrimitiveType)",
            "type" : "string"
          }
        }
      },
      "required" : [ "source", "learningObjectiveIds" ],
      "additionalProperties" : false
    },
    "AssessmentLineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
          "$comment" : "Origin: AssessmentLineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'AssessmentLineItem'. ",
          "type" : "string",
          "enum" : [ "assessmentLineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

AssessmentResultSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "AssessmentResultSet",
  "title" : "JSON Schema for the AssessmentResultSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/AssessmentResult"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "AssessmentResult" : {
      "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" : {
        "assessmentLineItem" : {
          "$ref" : "#/$defs/AssessmentLineItemGUIDRef"
        },
        "student" : {
          "$ref" : "#/$defs/UserGUIDRef"
        },
        "score" : {
          "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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].",
          "$comment" : "Origin: Date (PrimitiveType)",
          "type" : "string",
          "format" : "date"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "scoreStatus" : {
          "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
          "$comment" : "Origin: ScoreStatusExtEnum (Union); This is an extensible vocabulary data-type for the status of the score being submitted.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "comment" : {
          "description" : "A human readable comment about the score.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveScoreSet"
          }
        },
        "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "missing" : {
          "description" : "This is used to indicate that the student's work product as not been submitted.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "assessmentLineItem", "student", "scoreDate", "scoreStatus", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "UserGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'user'.",
          "$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'User'. ",
          "type" : "string",
          "enum" : [ "user" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveScoreSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveResults" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveResults"
          }
        }
      },
      "required" : [ "source", "learningObjectiveResults" ],
      "additionalProperties" : false
    },
    "LearningObjectiveResults" : {
      "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" : "The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "score" : {
          "description" : "The optional mastery score supplied as a numeric value. ",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "The optional mastery score supplied in a non-numeric form. ",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "learningObjectiveId" ],
      "additionalProperties" : false
    },
    "AssessmentLineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
          "$comment" : "Origin: AssessmentLineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'AssessmentLineItem'. ",
          "type" : "string",
          "enum" : [ "assessmentLineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

CategoriesSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "CategoriesSet",
  "title" : "JSON Schema for the CategoriesSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/Category"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "Category" : {
      "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" : {
        "title" : {
          "description" : "The human readable title for the category.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "weight" : {
          "description" : "Total weight of this grading category in calculation of the course final score.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

GUID

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "GUID",
  "title" : "JSON Schema for the GUID class.",
  "description" : "The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
  "type" : "object",
  "properties" : { },
  "required" : [ ],
  "additionalProperties" : false
}

GUIDPairSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "GUIDPairSet",
  "title" : "JSON Schema for the GUIDPairSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/GUIDPair"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "GUIDPair" : {
      "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" : "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        },
        "allocatedSourcedId" : {
          "description" : "The sourcedId that has been allocated by the system on which the new record has been created.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "suppliedSourcedId", "allocatedSourcedId" ],
      "additionalProperties" : false
    }
  }
}

LineItemSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "LineItemSet",
  "title" : "JSON Schema for the LineItemSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/LineItem"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "LineItem" : {
      "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" : {
        "title" : {
          "description" : "The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "description" : {
          "description" : "A human readable description of the usage of the lineItem.",
          "$comment" : "Origin: String (PrimitiveType)",
          "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].",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "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].",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "school" : {
          "$ref" : "#/$defs/OrgGUIDRef"
        },
        "category" : {
          "$ref" : "#/$defs/CategoryGUIDRef"
        },
        "gradingPeriod" : {
          "$ref" : "#/$defs/AcadSessionGUIDRef"
        },
        "academicSession" : {
          "$ref" : "#/$defs/AcadSessionGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveSet"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "assignDate", "dueDate", "class", "school", "category", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "CategoryGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'category'.",
          "$comment" : "Origin: CategoryGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Category'. ",
          "type" : "string",
          "enum" : [ "category" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveIds" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "description" : "The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
            "$comment" : "Origin: NormalizedString (PrimitiveType)",
            "type" : "string"
          }
        }
      },
      "required" : [ "source", "learningObjectiveIds" ],
      "additionalProperties" : false
    },
    "AcadSessionGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'academicSession'.",
          "$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'. ",
          "type" : "string",
          "enum" : [ "academicSession" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    },
    "OrgGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'org'.",
          "$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'. ",
          "type" : "string",
          "enum" : [ "org" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    }
  }
}

NonNegativeInteger

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "NonNegativeInteger",
  "title" : "JSON Schema for the NonNegativeInteger class.",
  "description" : "No description supplied.",
  "type" : "object",
  "properties" : { },
  "required" : [ ],
  "additionalProperties" : false
}

OrderByEnum

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "OrderByEnum",
  "title" : "JSON Schema for the OrderByEnum class.",
  "description" : "No description supplied.",
  "type" : "object",
  "properties" : {
    "asc" : {
      "description" : "No description supplied.",
      "$comment" : "Origin: String (PrimitiveType)",
      "type" : "string"
    },
    "desc" : {
      "description" : "No description supplied.",
      "$comment" : "Origin: String (PrimitiveType)",
      "type" : "string"
    }
  },
  "required" : [ "asc", "desc" ],
  "additionalProperties" : false
}

PositiveInteger

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "PositiveInteger",
  "title" : "JSON Schema for the PositiveInteger class.",
  "description" : "No description supplied.",
  "type" : "object",
  "properties" : { },
  "required" : [ ],
  "additionalProperties" : false
}

ResultSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "ResultSet",
  "title" : "JSON Schema for the ResultSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/Result"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "Result" : {
      "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" : {
        "lineItem" : {
          "$ref" : "#/$defs/LineItemGUIDRef"
        },
        "student" : {
          "$ref" : "#/$defs/UserGUIDRef"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "scoreStatus" : {
          "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
          "$comment" : "Origin: ScoreStatusExtEnum (Union); This is an extensible vocabulary data-type for the status of the score being submitted.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "score" : {
          "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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].",
          "$comment" : "Origin: Date (PrimitiveType)",
          "type" : "string",
          "format" : "date"
        },
        "comment" : {
          "description" : "A human readable comment about the score.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveScoreSet"
          }
        },
        "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "missing" : {
          "description" : "This is used to indicate that the student's work product as not been submitted.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "lineItem", "student", "scoreStatus", "scoreDate", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "UserGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'user'.",
          "$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'User'. ",
          "type" : "string",
          "enum" : [ "user" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveScoreSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveResults" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveResults"
          }
        }
      },
      "required" : [ "source", "learningObjectiveResults" ],
      "additionalProperties" : false
    },
    "LearningObjectiveResults" : {
      "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" : "The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "score" : {
          "description" : "The optional mastery score supplied as a numeric value. ",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "The optional mastery score supplied in a non-numeric form. ",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "learningObjectiveId" ],
      "additionalProperties" : false
    },
    "LineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'lineItem'.",
          "$comment" : "Origin: LineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'LineItem'. ",
          "type" : "string",
          "enum" : [ "lineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

ScoreScaleSet

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "ScoreScaleSet",
  "title" : "JSON Schema for the ScoreScaleSet class.",
  "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" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/ScoreScale"
      }
    }
  },
  "required" : [ ],
  "additionalProperties" : false,
  "$defs" : {
    "ScoreScale" : {
      "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
      "type" : "object",
      "properties" : {
        "title" : {
          "description" : "The human readable title for the score scale mapping.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "course" : {
          "$ref" : "#/$defs/CourseGUIDRef"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "scoreScaleValue" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/ScoreScaleValue"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "type", "class", "scoreScaleValue", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "CourseGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'course'.",
          "$comment" : "Origin: CourseGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Course'. ",
          "type" : "string",
          "enum" : [ "course" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleValue" : {
      "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" : "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "itemValueLHS", "itemValueRHS" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

SingleAssessmentLineItem

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleAssessmentLineItem",
  "title" : "JSON Schema for the SingleAssessmentLineItem class.",
  "description" : "This is the container for a single assessment lineItem instance for a message payload.",
  "type" : "object",
  "properties" : {
    "assessmentLineItem" : {
      "$ref" : "#/$defs/AssessmentLineItem"
    }
  },
  "required" : [ "assessmentLineItem" ],
  "additionalProperties" : false,
  "$defs" : {
    "AssessmentLineItem" : {
      "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" : {
        "title" : {
          "description" : "The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "description" : {
          "description" : "A human readable description of the usage of the assessment lineItem.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "parentAssessmentLineItem" : {
          "$ref" : "#/$defs/AssessmentLineItemGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveSet"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveIds" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "description" : "The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
            "$comment" : "Origin: NormalizedString (PrimitiveType)",
            "type" : "string"
          }
        }
      },
      "required" : [ "source", "learningObjectiveIds" ],
      "additionalProperties" : false
    },
    "AssessmentLineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
          "$comment" : "Origin: AssessmentLineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'AssessmentLineItem'. ",
          "type" : "string",
          "enum" : [ "assessmentLineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

SingleAssessmentResult

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleAssessmentResult",
  "title" : "JSON Schema for the SingleAssessmentResult class.",
  "description" : "This is the container for a single assessment result instance for a message payload.",
  "type" : "object",
  "properties" : {
    "assessmentResult" : {
      "$ref" : "#/$defs/AssessmentResult"
    }
  },
  "required" : [ "assessmentResult" ],
  "additionalProperties" : false,
  "$defs" : {
    "AssessmentResult" : {
      "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" : {
        "assessmentLineItem" : {
          "$ref" : "#/$defs/AssessmentLineItemGUIDRef"
        },
        "student" : {
          "$ref" : "#/$defs/UserGUIDRef"
        },
        "score" : {
          "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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].",
          "$comment" : "Origin: Date (PrimitiveType)",
          "type" : "string",
          "format" : "date"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "scoreStatus" : {
          "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
          "$comment" : "Origin: ScoreStatusExtEnum (Union); This is an extensible vocabulary data-type for the status of the score being submitted.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "comment" : {
          "description" : "A human readable comment about the score.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveScoreSet"
          }
        },
        "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "missing" : {
          "description" : "This is used to indicate that the student's work product as not been submitted.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "assessmentLineItem", "student", "scoreDate", "scoreStatus", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "UserGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'user'.",
          "$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'User'. ",
          "type" : "string",
          "enum" : [ "user" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveScoreSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveResults" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveResults"
          }
        }
      },
      "required" : [ "source", "learningObjectiveResults" ],
      "additionalProperties" : false
    },
    "LearningObjectiveResults" : {
      "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" : "The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "score" : {
          "description" : "The optional mastery score supplied as a numeric value. ",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "The optional mastery score supplied in a non-numeric form. ",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "learningObjectiveId" ],
      "additionalProperties" : false
    },
    "AssessmentLineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
          "$comment" : "Origin: AssessmentLineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'AssessmentLineItem'. ",
          "type" : "string",
          "enum" : [ "assessmentLineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

SingleCategory

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleCategory",
  "title" : "JSON Schema for the SingleCategory class.",
  "description" : "This is the container for a single category instance for a message payload.",
  "type" : "object",
  "properties" : {
    "category" : {
      "$ref" : "#/$defs/Category"
    }
  },
  "required" : [ "category" ],
  "additionalProperties" : false,
  "$defs" : {
    "Category" : {
      "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" : {
        "title" : {
          "description" : "The human readable title for the category.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "weight" : {
          "description" : "Total weight of this grading category in calculation of the course final score.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

SingleLineItem

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleLineItem",
  "title" : "JSON Schema for the SingleLineItem class.",
  "description" : "This is the container for a single lineItem instance for a message payload.",
  "type" : "object",
  "properties" : {
    "lineItem" : {
      "$ref" : "#/$defs/LineItem"
    }
  },
  "required" : [ "lineItem" ],
  "additionalProperties" : false,
  "$defs" : {
    "LineItem" : {
      "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" : {
        "title" : {
          "description" : "The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "description" : {
          "description" : "A human readable description of the usage of the lineItem.",
          "$comment" : "Origin: String (PrimitiveType)",
          "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].",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "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].",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "school" : {
          "$ref" : "#/$defs/OrgGUIDRef"
        },
        "category" : {
          "$ref" : "#/$defs/CategoryGUIDRef"
        },
        "gradingPeriod" : {
          "$ref" : "#/$defs/AcadSessionGUIDRef"
        },
        "academicSession" : {
          "$ref" : "#/$defs/AcadSessionGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveSet"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "assignDate", "dueDate", "class", "school", "category", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "CategoryGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'category'.",
          "$comment" : "Origin: CategoryGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Category'. ",
          "type" : "string",
          "enum" : [ "category" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveIds" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "description" : "The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
            "$comment" : "Origin: NormalizedString (PrimitiveType)",
            "type" : "string"
          }
        }
      },
      "required" : [ "source", "learningObjectiveIds" ],
      "additionalProperties" : false
    },
    "AcadSessionGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'academicSession'.",
          "$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'. ",
          "type" : "string",
          "enum" : [ "academicSession" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    },
    "OrgGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. an 'org'.",
          "$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'. ",
          "type" : "string",
          "enum" : [ "org" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    }
  }
}

SingleResult

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleResult",
  "title" : "JSON Schema for the SingleResult class.",
  "description" : "This is the container for a single result instance for a message payload.",
  "type" : "object",
  "properties" : {
    "result" : {
      "$ref" : "#/$defs/Result"
    }
  },
  "required" : [ "result" ],
  "additionalProperties" : false,
  "$defs" : {
    "Result" : {
      "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" : {
        "lineItem" : {
          "$ref" : "#/$defs/LineItemGUIDRef"
        },
        "student" : {
          "$ref" : "#/$defs/UserGUIDRef"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "scoreScale" : {
          "$ref" : "#/$defs/ScoreScaleGUIDRef"
        },
        "scoreStatus" : {
          "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
          "$comment" : "Origin: ScoreStatusExtEnum (Union); This is an extensible vocabulary data-type for the status of the score being submitted.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "exempt", "fully graded", "not submitted", "partially graded", "submitted" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "score" : {
          "description" : "The score for the result. If a scoreScale is assigned then the value must align with the scale.",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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].",
          "$comment" : "Origin: Date (PrimitiveType)",
          "type" : "string",
          "format" : "date"
        },
        "comment" : {
          "description" : "A human readable comment about the score.",
          "$comment" : "Origin: String (PrimitiveType)",
          "type" : "string"
        },
        "learningObjectiveSet" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveScoreSet"
          }
        },
        "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "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.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "missing" : {
          "description" : "This is used to indicate that the student's work product as not been submitted.",
          "$comment" : "Origin: BooleanTrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
          "type" : "string",
          "enum" : [ "true", "false" ]
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "lineItem", "student", "scoreStatus", "scoreDate", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "UserGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'user'.",
          "$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'User'. ",
          "type" : "string",
          "enum" : [ "user" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'scoreScale'.",
          "$comment" : "Origin: ScoreScaleGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'ScoreScale'. ",
          "type" : "string",
          "enum" : [ "scoreScale" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "LearningObjectiveScoreSet" : {
      "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.",
          "$comment" : "Origin: SourceExtEnum (Union); This is an extensible vocabulary data-type for the source creating the learning objective identifiers.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "case", "unknown" ]
          }, {
            "type" : "string",
            "pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
          } ]
        },
        "learningObjectiveResults" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/LearningObjectiveResults"
          }
        }
      },
      "required" : [ "source", "learningObjectiveResults" ],
      "additionalProperties" : false
    },
    "LearningObjectiveResults" : {
      "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" : "The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "score" : {
          "description" : "The optional mastery score supplied as a numeric value. ",
          "$comment" : "Origin: Float (PrimitiveType)",
          "type" : "number"
        },
        "textScore" : {
          "description" : "The optional mastery score supplied in a non-numeric form. ",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "learningObjectiveId" ],
      "additionalProperties" : false
    },
    "LineItemGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'lineItem'.",
          "$comment" : "Origin: LineItemGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'LineItem'. ",
          "type" : "string",
          "enum" : [ "lineItem" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

SingleScoreScale

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "SingleScoreScale",
  "title" : "JSON Schema for the SingleScoreScale class.",
  "description" : "This is the container for a single scoreScale instance for a message payload.",
  "type" : "object",
  "properties" : {
    "scoreScale" : {
      "$ref" : "#/$defs/ScoreScale"
    }
  },
  "required" : [ "scoreScale" ],
  "additionalProperties" : false,
  "$defs" : {
    "ScoreScale" : {
      "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
      "type" : "object",
      "properties" : {
        "title" : {
          "description" : "The human readable title for the score scale mapping.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "course" : {
          "$ref" : "#/$defs/CourseGUIDRef"
        },
        "class" : {
          "$ref" : "#/$defs/ClassGUIDRef"
        },
        "scoreScaleValue" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/ScoreScaleValue"
          }
        },
        "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.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "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'.",
          "$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
          "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.",
          "$comment" : "Origin: DateTime (PrimitiveType)",
          "type" : "string",
          "format" : "date-time"
        },
        "metadata" : {
          "$ref" : "#/$defs/Metadata"
        }
      },
      "required" : [ "title", "type", "class", "scoreScaleValue", "sourcedId", "status", "dateLastModified" ],
      "additionalProperties" : false
    },
    "CourseGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'course'.",
          "$comment" : "Origin: CourseGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Course'. ",
          "type" : "string",
          "enum" : [ "course" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ClassGUIDRef" : {
      "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
      "type" : "object",
      "properties" : {
        "type" : {
          "description" : "The type of object being referenced i.e. a 'class'.",
          "$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Class'. ",
          "type" : "string",
          "enum" : [ "class" ]
        },
        "href" : {
          "description" : "The URI for the type of object being referenced.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        },
        "sourcedId" : {
          "description" : "The globally unique identifier of the object being referenced.",
          "$comment" : "Origin: GUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID.",
          "type" : "string"
        }
      },
      "required" : [ "type", "href", "sourcedId" ],
      "additionalProperties" : false
    },
    "ScoreScaleValue" : {
      "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" : "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "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.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "itemValueLHS", "itemValueRHS" ],
      "additionalProperties" : false
    },
    "Metadata" : {
      "description" : "The container for the proprietary extensions.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}

String

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "String",
  "title" : "JSON Schema for the String class.",
  "description" : "No description supplied.",
  "type" : "object",
  "properties" : { },
  "required" : [ ],
  "additionalProperties" : false
}

Void

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "Void",
  "title" : "JSON Schema for the Void class.",
  "description" : "No description supplied.",
  "type" : "object",
  "properties" : { },
  "required" : [ ],
  "additionalProperties" : false
}

imsx_StatusInfo

{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "imsx_StatusInfo",
  "title" : "JSON Schema for the imsx_StatusInfo class.",
  "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.",
      "$comment" : "Origin: imsx_CodeMajorEnum (Enumeration); 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.",
      "$comment" : "Origin: imsx_SeverityEnum (Enumeration); The permitted vocabulary for the values for the Severity field.",
      "type" : "string",
      "enum" : [ "status", "warning", "error" ]
    },
    "imsx_description" : {
      "description" : "A human readable description supplied by the entity creating the status code information.",
      "$comment" : "Origin: String (PrimitiveType)",
      "type" : "string"
    },
    "imsx_CodeMinor" : {
      "$ref" : "#/$defs/imsx_CodeMinor"
    }
  },
  "required" : [ "imsx_codeMajor", "imsx_severity" ],
  "additionalProperties" : false,
  "$defs" : {
    "imsx_CodeMinor" : {
      "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
      "type" : "object",
      "properties" : {
        "imsx_codeMinorField" : {
          "type" : "array",
          "minItems" : 1,
          "items" : {
            "$ref" : "#/$defs/imsx_CodeMinorField"
          }
        }
      },
      "required" : [ "imsx_codeMinorField" ],
      "additionalProperties" : false
    },
    "imsx_CodeMinorField" : {
      "description" : "This is the container for a single code minor status code.",
      "type" : "object",
      "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'.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "imsx_codeMinorFieldValue" : {
          "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
          "$comment" : "Origin: imsx_CodeMinorValueEnum (Enumeration); The permitted vocabulary for the values for the CodeMinorValue field.",
          "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
    }
  }
}

IP Disclosures

The following participating organizations have made explicit license commitments to this specification:

Organization Name Date election made Necessary claims Type
D2L Corporation 2022-07-21 No RF RAND (Required & Optional Elements)
Gwinnett County Public Schools 2022-07-22 No RF RAND (Required & Optional Elements)
Infinite Campus Inc. 2022-07-25 No RF RAND (Required & Optional Elements)
Microsoft Corporation 2022-08-08 No RF RAND (Required & Optional Elements)
SameGoal Inc. 2022-07-21 No RF RAND (Required & Optional Elements)
Anthology Inc. 2022-08-10 No RF RAND (Required & Optional Elements)

List of Contributors

The following individuals contributed to the development of this document:

Name Affiliation Role
Colin Smythe 1EdTech (UK)
Phil Nicholls 1EdTech (UK)
Aditya Subramaniam Schoology (USA)
Gabrielle Sanderson Illuminate Education (USA)
Matthew Richards Infinite Campus (USA)
Jong Kim Pearson (USA)
Upendra Penegalapati Pearson (USA)
Oxana Jurosevic Instructure (USA)
Viktor Haag Desire2Learn (Canada)
TJ Vering Microsoft (USA)
Padraig O'hiceadha HMH (UK)
Tom Clark Pearson (USA)
Richard Heim LearningMate (USA)
Wendy Riedy Microsoft (USA)
Linda Feng Unicon (USA)
James Perreault FLVS (USA)
Joshua McGhee 1EdTech (USA)
Mark Walls Gwinnett County Schools (USA)
Eric Adams Instructure (USA)
Kurt Rompot Pearson (USA)
David Mayes Gwinnett County Schools (USA)
Konrad Stimeling K12 Inc (USA)
Matt Vella Schoology (USA)
Patrick Porter Houston ISD (USA)
Barry Brahier Infinite Campus (USA)
Tom Ingram Escambia County School District (USA)
Andrew Kuritzky Edmentum (USA)

Changelog

Changelog entries are not listed yet.

Revision History

VersionDoc VersionDateComments
Final2015-07-01First release of the OneRoster Service specification.
Final2016-11-01This 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.
Final2022-09-19This 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.

Related resources

Data Model

Class JSON Schema
AssessmentLineItemSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_assessmentlineitemset-jsonschema1.json
AssessmentResultSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_assessmentresultset-jsonschema1.json
CategoriesSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_categoriesset-jsonschema1.json
GUIDPairSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_guidpairset-jsonschema1.json
LineItemSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_lineitemset-jsonschema1.json
ResultSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_resultset-jsonschema1.json
ScoreScaleSet https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_scorescaleset-jsonschema1.json
SingleAssessmentLineItem https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singleassessmentlineitem-jsonschema1.json
SingleAssessmentResult https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singleassessmentresult-jsonschema1.json
SingleCategory https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singlecategory-jsonschema1.json
SingleLineItem https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singlelineitem-jsonschema1.json
SingleResult https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singleresult-jsonschema1.json
SingleScoreScale https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_singlescorescale-jsonschema1.json
imsx_StatusInfo https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_imsx_statusinfo-jsonschema1.json
Void https://purl.imsglobal.org/spec/orgradebook/v1p2/schema/json/orgradebook_v1p2_void-jsonschema1.json

Service Model

The service model is available as an OpenAPI document at the following URL:

Skill

The skill model is available as a JSON file at the following URL: