IMS Final Release

IMS Global Logo

IMS OneRoster Rostering Service REST/JSON Binding Version 1.2

IMS Final Release
Version 1.0

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

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

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

Copyright © 2022 IMS Global Learning Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/speclicense.html.

Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Public contributions, comments and questions can be posted here: www.imsglobal.org/forums/ims-glc-public-forums-and-resources.

Trademark information: http://www.imsglobal.org/copyright.html

Document Name: IMS OneRoster Rostering Service REST/JSON Binding v1.2

Revision: 19th September 2022

toc | top

Abstract

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

This OR 1.2 Rostering Service provides the ability to manage the exchange of information about people, classes, courses, organizations and enrollments. The service description includes the definition of the data formats that are exchanged using a set of service operations. In this document the binding implementation as a REST/JSON service is described.

toc | top

Table of Contents

Abstract

1. Introduction

1.1 Scope and Context

1.2 Conventions

1.3 Changes in Rostering Service 1.2

1.4 Structure of this Document

1.5 Nomenclature

2. REST Endpoints

2.1 Mapping of the Service Operations to the REST Endpoints

2.2 API Root URL and Versioning

2.3 Predefined Endpoint Query Parameters

2.3.1 "getAcademicSession" Endpoint Query Parameters

2.3.2 "getAllAcademicSessions" Endpoint Query Parameters

2.3.3 "getAllClasses" Endpoint Query Parameters

2.3.4 "getAllCourses" Endpoint Query Parameters

2.3.5 "getAllDemographics" Endpoint Query Parameters

2.3.6 "getAllEnrollments" Endpoint Query Parameters

2.3.7 "getAllGradingPeriods" Endpoint Query Parameters

2.3.8 "getAllOrgs" Endpoint Query Parameters

2.3.9 "getAllSchools" Endpoint Query Parameters

2.3.10 "getAllStudents" Endpoint Query Parameters

2.3.11 "getAllTeachers" Endpoint Query Parameters

2.3.12 "getAllTerms" Endpoint Query Parameters

2.3.13 "getAllUsers" Endpoint Query Parameters

2.3.14 "getClass" Endpoint Query Parameters

2.3.15 "getClassesForCourse" Endpoint Query Parameters

2.3.16 "getClassesForSchool" Endpoint Query Parameters

2.3.17 "getClassesForStudent" Endpoint Query Parameters

2.3.18 "getClassesForTeacher" Endpoint Query Parameters

2.3.19 "getClassesForTerm" Endpoint Query Parameters

2.3.20 "getClassesForUser" Endpoint Query Parameters

2.3.21 "getCourse" Endpoint Query Parameters

2.3.22 "getCoursesForSchool" Endpoint Query Parameters

2.3.23 "getDemographics" Endpoint Query Parameters

2.3.24 "getEnrollment" Endpoint Query Parameters

2.3.25 "getEnrollmentsForClassInSchool" Endpoint Query Parameters

2.3.26 "getEnrollmentsForSchool" Endpoint Query Parameters

2.3.27 "getGradingPeriod" Endpoint Query Parameters

2.3.28 "getGradingPeriodsForTerm" Endpoint Query Parameters

2.3.29 "getOrg" Endpoint Query Parameters

2.3.30 "getSchool" Endpoint Query Parameters

2.3.31 "getStudent" Endpoint Query Parameters

2.3.32 "getStudentsForClass" Endpoint Query Parameters

2.3.33 "getStudentsForClassInSchool" Endpoint Query Parameters

2.3.34 "getStudentsForSchool" Endpoint Query Parameters

2.3.35 "getTeacher" Endpoint Query Parameters

2.3.36 "getTeachersForClass" Endpoint Query Parameters

2.3.37 "getTeachersForClassInSchool" Endpoint Query Parameters

2.3.38 "getTeachersForSchool" Endpoint Query Parameters

2.3.39 "getTerm" Endpoint Query Parameters

2.3.40 "getTermsForSchool" Endpoint Query Parameters

2.3.41 "getUser" Endpoint Query Parameters

2.4 HTTP Code Handling

2.5 Service Discovery

3. Using the Endpoint Parameters

3.1 Pagination

3.2 Sorting

3.3 Filtering

3.4 Field Selection

4. Security Framework

4.1 Transport Security

4.2 Authorization

4.3 Scopes

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

4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" Scope

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

5. UML to JSON Payload Mapping

5.1 Service Parameter Payload Properties UML/JSON Mapping

5.2 Service Parameter Payload Class UML/JSON Mapping

5.2.1 OrgSet Service Parameter Payload Class Mapping

5.2.2 SingleOrg Service Parameter Payload Class Mapping

5.2.3 CourseSet Service Parameter Payload Class Mapping

5.2.4 SingleCourse Service Parameter Payload Class Mapping

5.2.5 ClassSet Service Parameter Payload Class Mapping

5.2.6 SingleClass Service Parameter Payload Class Mapping

5.2.7 UserSet Service Parameter Payload Class Mapping

5.2.8 EnrollmentSet Service Parameter Payload Class Mapping

5.2.9 SingleEnrollment Service Parameter Payload Class Mapping

5.2.10 DemographicsSet Service Parameter Payload Class Mapping

5.2.11 SingleDemographics Service Parameter Payload Class Mapping

5.2.12 AcademicSessionSet Service Parameter Payload Class Mapping

5.2.13 SingleAcademicSession Service Parameter Payload Class Mapping

5.2.14 SingleUser Service Parameter Payload Class Mapping

5.3 Payload Classes UML/JSON Mapping

5.3.1 AcadSessionGUIDRef Payload Class Mapping

5.3.2 AcademicSession Payload Class Mapping

5.3.3 Base Payload Class Mapping

5.3.4 Class Payload Class Mapping

5.3.5 ClassGUIDRef Payload Class Mapping

5.3.6 Course Payload Class Mapping

5.3.7 CourseGUIDRef Payload Class Mapping

5.3.8 Credential Payload Class Mapping

5.3.9 Demographics Payload Class Mapping

5.3.10 Enrollment Payload Class Mapping

5.3.11 GUIDRef Payload Class Mapping

5.3.12 Metadata Payload Class Mapping

5.3.13 Org Payload Class Mapping

5.3.14 OrgGUIDRef Payload Class Mapping

5.3.15 ResourceGUIDRef Payload Class Mapping

5.3.16 Role Payload Class Mapping

5.3.17 User Payload Class Mapping

5.3.18 UserGUIDRef Payload Class Mapping

5.3.19 UserId Payload Class Mapping

5.3.20 UserProfile Payload Class Mapping

5.3.21 imsx_CodeMinor Payload Class Mapping

5.3.22 imsx_CodeMinorField Payload Class Mapping

5.3.23 imsx_StatusInfo Payload Class Mapping

5.4 Enumerated Class UML/JSON Mapping

5.5 Enumerated List Class UML/JSON Mapping

5.6 Primitive Type UML/JSON Mapping

6. JSON Payloads

6.1 "getAcademicSession" Request Payload

6.2 "getAcademicSession" Response Payload

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

6.2.2 Response Payloads for the HTTP Codes (200)

6.3 "getAllAcademicSessions" Request Payload

6.4 "getAllAcademicSessions" Response Payload

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

6.4.2 Response Payloads for the HTTP Codes (200)

6.5 "getAllClasses" Request Payload

6.6 "getAllClasses" Response Payload

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

6.6.2 Response Payloads for the HTTP Codes (200)

6.7 "getAllCourses" Request Payload

6.8 "getAllCourses" Response Payload

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

6.8.2 Response Payloads for the HTTP Codes (200)

6.9 "getAllDemographics" Request Payload

6.10 "getAllDemographics" Response Payload

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

6.10.2 Response Payloads for the HTTP Codes (200)

6.11 "getAllEnrollments" Request Payload

6.12 "getAllEnrollments" Response Payload

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

6.12.2 Response Payloads for the HTTP Codes (200)

6.13 "getAllGradingPeriods" Request Payload

6.14 "getAllGradingPeriods" Response Payload

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

6.14.2 Response Payloads for the HTTP Codes (200)

6.15 "getAllOrgs" Request Payload

6.16 "getAllOrgs" Response Payload

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

6.16.2 Response Payloads for the HTTP Codes (200)

6.17 "getAllSchools" Request Payload

6.18 "getAllSchools" Response Payload

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

6.18.2 Response Payloads for the HTTP Codes (200)

6.19 "getAllStudents" Request Payload

6.20 "getAllStudents" Response Payload

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

6.20.2 Response Payloads for the HTTP Codes (200)

6.21 "getAllTeachers" Request Payload

6.22 "getAllTeachers" Response Payload

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

6.22.2 Response Payloads for the HTTP Codes (200)

6.23 "getAllTerms" Request Payload

6.24 "getAllTerms" Response Payload

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

6.24.2 Response Payloads for the HTTP Codes (200)

6.25 "getAllUsers" Request Payload

6.26 "getAllUsers" Response Payload

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

6.26.2 Response Payloads for the HTTP Codes (200)

6.27 "getClass" Request Payload

6.28 "getClass" Response Payload

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

6.28.2 Response Payloads for the HTTP Codes (200)

6.29 "getClassesForCourse" Request Payload

6.30 "getClassesForCourse" Response Payload

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

6.30.2 Response Payloads for the HTTP Codes (200)

6.31 "getClassesForSchool" Request Payload

6.32 "getClassesForSchool" Response Payload

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

6.32.2 Response Payloads for the HTTP Codes (200)

6.33 "getClassesForStudent" Request Payload

6.34 "getClassesForStudent" Response Payload

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

6.34.2 Response Payloads for the HTTP Codes (200)

6.35 "getClassesForTeacher" Request Payload

6.36 "getClassesForTeacher" Response Payload

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

6.36.2 Response Payloads for the HTTP Codes (200)

6.37 "getClassesForTerm" Request Payload

6.38 "getClassesForTerm" Response Payload

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

6.38.2 Response Payloads for the HTTP Codes (200)

6.39 "getClassesForUser" Request Payload

6.40 "getClassesForUser" Response Payload

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

6.40.2 Response Payloads for the HTTP Codes (200)

6.41 "getCourse" Request Payload

6.42 "getCourse" Response Payload

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

6.42.2 Response Payloads for the HTTP Codes (200)

6.43 "getCoursesForSchool" Request Payload

6.44 "getCoursesForSchool" Response Payload

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

6.44.2 Response Payloads for the HTTP Codes (200)

6.45 "getDemographics" Request Payload

6.46 "getDemographics" Response Payload

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

6.46.2 Response Payloads for the HTTP Codes (200)

6.47 "getEnrollment" Request Payload

6.48 "getEnrollment" Response Payload

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

6.48.2 Response Payloads for the HTTP Codes (200)

6.49 "getEnrollmentsForClassInSchool" Request Payload

6.50 "getEnrollmentsForClassInSchool" Response Payload

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

6.50.2 Response Payloads for the HTTP Codes (200)

6.51 "getEnrollmentsForSchool" Request Payload

6.52 "getEnrollmentsForSchool" Response Payload

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

6.52.2 Response Payloads for the HTTP Codes (200)

6.53 "getGradingPeriod" Request Payload

6.54 "getGradingPeriod" Response Payload

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

6.54.2 Response Payloads for the HTTP Codes (200)

6.55 "getGradingPeriodsForTerm" Request Payload

6.56 "getGradingPeriodsForTerm" Response Payload

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

6.56.2 Response Payloads for the HTTP Codes (200)

6.57 "getOrg" Request Payload

6.58 "getOrg" Response Payload

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

6.58.2 Response Payloads for the HTTP Codes (200)

6.59 "getSchool" Request Payload

6.60 "getSchool" Response Payload

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

6.60.2 Response Payloads for the HTTP Codes (200)

6.61 "getStudent" Request Payload

6.62 "getStudent" Response Payload

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

6.62.2 Response Payloads for the HTTP Codes (200)

6.63 "getStudentsForClass" Request Payload

6.64 "getStudentsForClass" Response Payload

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

6.64.2 Response Payloads for the HTTP Codes (200)

6.65 "getStudentsForClassInSchool" Request Payload

6.66 "getStudentsForClassInSchool" Response Payload

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

6.66.2 Response Payloads for the HTTP Codes (200)

6.67 "getStudentsForSchool" Request Payload

6.68 "getStudentsForSchool" Response Payload

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

6.68.2 Response Payloads for the HTTP Codes (200)

6.69 "getTeacher" Request Payload

6.70 "getTeacher" Response Payload

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

6.70.2 Response Payloads for the HTTP Codes (200)

6.71 "getTeachersForClass" Request Payload

6.72 "getTeachersForClass" Response Payload

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

6.72.2 Response Payloads for the HTTP Codes (200)

6.73 "getTeachersForClassInSchool" Request Payload

6.74 "getTeachersForClassInSchool" Response Payload

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

6.74.2 Response Payloads for the HTTP Codes (200)

6.75 "getTeachersForSchool" Request Payload

6.76 "getTeachersForSchool" Response Payload

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

6.76.2 Response Payloads for the HTTP Codes (200)

6.77 "getTerm" Request Payload

6.78 "getTerm" Response Payload

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

6.78.2 Response Payloads for the HTTP Codes (200)

6.79 "getTermsForSchool" Request Payload

6.80 "getTermsForSchool" Response Payload

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

6.80.2 Response Payloads for the HTTP Codes (200)

6.81 "getUser" Request Payload

6.82 "getUser" Response Payload

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

6.82.2 Response Payloads for the HTTP Codes (200)

7. OpenAPI Description

7.1 General Information

7.2 Tags Information

7.3 Security Information

7.4 Paths Information

7.4.1 "/academicSessions" Path

7.4.2 "/academicSessions/{sourcedId}" Path

7.4.3 "/classes" Path

7.4.4 "/classes/{classSourcedId}/students" Path

7.4.5 "/classes/{classSourcedId}/teachers" Path

7.4.6 "/classes/{sourcedId}" Path

7.4.7 "/courses" Path

7.4.8 "/courses/{courseSourcedId}/classes" Path

7.4.9 "/courses/{sourcedId}" Path

7.4.10 "/demographics" Path

7.4.11 "/demographics/{sourcedId}" Path

7.4.12 "/enrollments" Path

7.4.13 "/enrollments/{sourcedId}" Path

7.4.14 "/gradingPeriods" Path

7.4.15 "/gradingPeriods/{sourcedId}" Path

7.4.16 "/orgs" Path

7.4.17 "/orgs/{sourcedId}" Path

7.4.18 "/schools" Path

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

7.4.20 "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" Path

7.4.21 "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" Path

7.4.22 "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" Path

7.4.23 "/schools/{schoolSourcedId}/courses" Path

7.4.24 "/schools/{schoolSourcedId}/enrollments" Path

7.4.25 "/schools/{schoolSourcedId}/students" Path

7.4.26 "/schools/{schoolSourcedId}/teachers" Path

7.4.27 "/schools/{schoolSourcedId}/terms" Path

7.4.28 "/schools/{sourcedId}" Path

7.4.29 "/students" Path

7.4.30 "/students/{sourcedId}" Path

7.4.31 "/students/{studentSourcedId}/classes" Path

7.4.32 "/teachers" Path

7.4.33 "/teachers/{sourcedId}" Path

7.4.34 "/teachers/{teacherSourcedId}/classes" Path

7.4.35 "/terms" Path

7.4.36 "/terms/{sourcedId}" Path

7.4.37 "/terms/{termSourcedId}/classes" Path

7.4.38 "/terms/{termSourcedId}/gradingPeriods" Path

7.4.39 "/users" Path

7.4.40 "/users/{sourcedId}" Path

7.4.41 "/users/{userSourcedId}/classes" Path

7.5 Definitions Information

7.5.1 "AcadSessionGUIDRefDType" Definition

7.5.2 "AcademicSessionDType" Definition

7.5.3 "AcademicSessionSetDType" Definition

7.5.4 "ClassDType" Definition

7.5.5 "ClassGUIDRefDType" Definition

7.5.6 "ClassSetDType" Definition

7.5.7 "CourseDType" Definition

7.5.8 "CourseGUIDRefDType" Definition

7.5.9 "CourseSetDType" Definition

7.5.10 "CredentialDType" Definition

7.5.11 "DemographicsDType" Definition

7.5.12 "DemographicsSetDType" Definition

7.5.13 "EnrollmentDType" Definition

7.5.14 "EnrollmentSetDType" Definition

7.5.15 "MetadataDType" Definition

7.5.16 "OrgDType" Definition

7.5.17 "OrgGUIDRefDType" Definition

7.5.18 "OrgSetDType" Definition

7.5.19 "ResourceGUIDRefDType" Definition

7.5.20 "RoleDType" Definition

7.5.21 "SingleAcademicSessionDType" Definition

7.5.22 "SingleClassDType" Definition

7.5.23 "SingleCourseDType" Definition

7.5.24 "SingleDemographicsDType" Definition

7.5.25 "SingleEnrollmentDType" Definition

7.5.26 "SingleOrgDType" Definition

7.5.27 "SingleUserDType" Definition

7.5.28 "UserDType" Definition

7.5.29 "UserGUIDRefDType" Definition

7.5.30 "UserIdDType" Definition

7.5.31 "UserProfileDType" Definition

7.5.32 "UserSetDType" Definition

7.5.33 "imsx_CodeMinorDType" Definition

7.5.34 "imsx_CodeMinorFieldDType" Definition

7.5.35 "imsx_StatusInfoDType" Definition

8. Extending and Profiling the Binding

8.1 Extending the Binding

8.1.1 Proprietary Operations

8.1.2 Proprietary Scopes

8.1.3 Proprietary Data Elements

8.1.4 Proprietary Vocabulary Terms

8.2 Profiling the Binding

References

Appendix A Model Binding Terms and Concepts

A1 REST Endpoint Description Explanations

A1.1 REST Endpoint Mapping Table Explanation

A1.2 Query Parameter Table Explanation

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

A2 UML to JSON Mapping Description Explanations

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

A2.2 UML/JSON Payload Class Mapping Table Definition

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

A2.4 UML/JSON Primitive Types Mapping Table Definition

A3 OpenAPI (v2) Descriptions Explanations

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

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

A3.2 OpenAPI Tags Table Explanation

A3.3 OpenAPI Security Table Explanation

A3.4 OpenAPI Paths Table Explanation

A3.5 OpenAPI Definitions Table Explanation

Appendix B OpenAPI Listings

B1 Listing of the OpenAPI (JSON) File

B1.1 OpenAPI 2.0 JSON Listing

B1.2 OpenAPI 3.0 JSON Listing

B2 Listing of the OpenAPI (YAML) File

B2.1 OpenAPI 2.0 YAML Listing

B2.2 OpenAPI 3.0 YAML Listing

Appendix C JSON Schema Listings

C1 JSON Schemas for Payload Validation

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

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

C1.1c JSON Schema for the "getAcademicSession" Operation Response Payload Validation for HTTP Codes (200)

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

C1.2b JSON Schema for the "getAllAcademicSessions" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.2c JSON Schema for the "getAllAcademicSessions" Operation Response Payload Validation for HTTP Codes (200)

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

C1.3b JSON Schema for the "getAllClasses" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.3c JSON Schema for the "getAllClasses" Operation Response Payload Validation for HTTP Codes (200)

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

C1.4b JSON Schema for the "getAllCourses" Operation Response Payload Validation for HTTP Codes (default,400,401,403,429,500,422)

C1.4c JSON Schema for the "getAllCourses" Operation Response Payload Validation for HTTP Codes (200)

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

C1.5b JSON Schema for the "getAllDemographics" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.5c JSON Schema for the "getAllDemographics" Operation Response Payload Validation for HTTP Codes (200)

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

C1.6b JSON Schema for the "getAllEnrollments" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.6c JSON Schema for the "getAllEnrollments" Operation Response Payload Validation for HTTP Codes (200)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C1.26b JSON Schema for the "getEnrollmentsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.26c JSON Schema for the "getEnrollmentsForSchool" Operation Response Payload Validation for HTTP Codes (200)

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

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

C1.27c JSON Schema for the "getGradingPeriod" Operation Response Payload Validation for HTTP Codes (200)

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

C1.28b JSON Schema for the "getGradingPeriodsForTerm" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.28c JSON Schema for the "getGradingPeriodsForTerm" Operation Response Payload Validation for HTTP Codes (200)

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

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

C1.29c JSON Schema for the "getOrg" Operation Response Payload Validation for HTTP Codes (200)

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

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

C1.30c JSON Schema for the "getSchool" Operation Response Payload Validation for HTTP Codes (200)

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

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

C1.31c JSON Schema for the "getStudent" Operation Response Payload Validation for HTTP Codes (200)

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

C1.32b JSON Schema for the "getStudentsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.32c JSON Schema for the "getStudentsForClass" Operation Response Payload Validation for HTTP Codes (200)

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

C1.33b JSON Schema for the "getStudentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.33c JSON Schema for the "getStudentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (200)

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

C1.34b JSON Schema for the "getStudentsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.34c JSON Schema for the "getStudentsForSchool" Operation Response Payload Validation for HTTP Codes (200)

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

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

C1.35c JSON Schema for the "getTeacher" Operation Response Payload Validation for HTTP Codes (200)

C1.36a JSON Schema for the "getTeachersForClass" Operation Request Payload Validation.

C1.36b JSON Schema for the "getTeachersForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.36c JSON Schema for the "getTeachersForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.37a JSON Schema for the "getTeachersForClassInSchool" Operation Request Payload Validation.

C1.37b JSON Schema for the "getTeachersForClassInSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.37c JSON Schema for the "getTeachersForClassInSchool" Operation Response Payload Validation for HTTP Codes (200)

C1.38a JSON Schema for the "getTeachersForSchool" Operation Request Payload Validation.

C1.38b JSON Schema for the "getTeachersForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.38c JSON Schema for the "getTeachersForSchool" Operation Response Payload Validation for HTTP Codes (200)

C1.39a JSON Schema for the "getTerm" Operation Request Payload Validation.

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

C1.39c JSON Schema for the "getTerm" Operation Response Payload Validation for HTTP Codes (200)

C1.40a JSON Schema for the "getTermsForSchool" Operation Request Payload Validation.

C1.40b JSON Schema for the "getTermsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.40c JSON Schema for the "getTermsForSchool" Operation Response Payload Validation for HTTP Codes (200)

C1.41a JSON Schema for the "getUser" Operation Request Payload Validation.

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

C1.41c JSON Schema for the "getUser" Operation Response Payload Validation for HTTP Codes (200)

About this Document

List of Contributors

Revision History

toc | top

List of Figures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

toc | top

List of Tables

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

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

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

Table 4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" Scope

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

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

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

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

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

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

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

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

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

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

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

Table 7.4.7 - The Set of HTTP Verbs Permitted on the "/courses" Path.

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

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

Table 7.4.10 - The Set of HTTP Verbs Permitted on the "/demographics" Path.

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

Table 7.4.12 - The Set of HTTP Verbs Permitted on the "/enrollments" Path.

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

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

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

Table 7.4.16 - The Set of HTTP Verbs Permitted on the "/orgs" Path.

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

Table 7.4.18 - The Set of HTTP Verbs Permitted on the "/schools" Path.

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

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

Table 7.4.21 - The Set of HTTP Verbs Permitted on the "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" Path.

Table 7.4.22 - The Set of HTTP Verbs Permitted on the "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" Path.

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

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

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

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

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

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

Table 7.4.29 - The Set of HTTP Verbs Permitted on the "/students" Path.

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

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

Table 7.4.32 - The Set of HTTP Verbs Permitted on the "/teachers" Path.

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

Table 7.4.34 - The Set of HTTP Verbs Permitted on the "/teachers/{teacherSourcedId}/classes" Path.

Table 7.4.35 - The Set of HTTP Verbs Permitted on the "/terms" Path.

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

Table 7.4.37 - The Set of HTTP Verbs Permitted on the "/terms/{termSourcedId}/classes" Path.

Table 7.4.38 - The Set of HTTP Verbs Permitted on the "/terms/{termSourcedId}/gradingPeriods" Path.

Table 7.4.39 - The Set of HTTP Verbs Permitted on the "/users" Path.

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

Table 7.4.41 - The Set of HTTP Verbs Permitted on the "/users/{userSourcedId}/classes" Path.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Table A1.2 The key to the descriptions of the data attribute/characteristic tables

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

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

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

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

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

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

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

toc | top

List of Code Blocks

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

Code 6.2.2 - JSON payload example for "200" response messages for a "getAcademicSession" operation.

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

Code 6.4.2 - JSON payload example for "200" response messages for a "getAllAcademicSessions" operation.

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

Code 6.6.2 - JSON payload example for "200" response messages for a "getAllClasses" operation.

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

Code 6.8.2 - JSON payload example for "200" response messages for a "getAllCourses" operation.

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

Code 6.10.2 - JSON payload example for "200" response messages for a "getAllDemographics" operation.

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

Code 6.12.2 - JSON payload example for "200" response messages for a "getAllEnrollments" operation.

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

Code 6.14.2 - JSON payload example for "200" response messages for a "getAllGradingPeriods" operation.

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

Code 6.16.2 - JSON payload example for "200" response messages for a "getAllOrgs" operation.

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

Code 6.18.2 - JSON payload example for "200" response messages for a "getAllSchools" operation.

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

Code 6.20.2 - JSON payload example for "200" response messages for a "getAllStudents" operation.

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

Code 6.22.2 - JSON payload example for "200" response messages for a "getAllTeachers" operation.

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

Code 6.24.2 - JSON payload example for "200" response messages for a "getAllTerms" operation.

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

Code 6.26.2 - JSON payload example for "200" response messages for a "getAllUsers" operation.

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

Code 6.28.2 - JSON payload example for "200" response messages for a "getClass" operation.

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

Code 6.30.2 - JSON payload example for "200" response messages for a "getClassesForCourse" operation.

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

Code 6.32.2 - JSON payload example for "200" response messages for a "getClassesForSchool" operation.

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

Code 6.34.2 - JSON payload example for "200" response messages for a "getClassesForStudent" operation.

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

Code 6.36.2 - JSON payload example for "200" response messages for a "getClassesForTeacher" operation.

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

Code 6.38.2 - JSON payload example for "200" response messages for a "getClassesForTerm" operation.

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

Code 6.40.2 - JSON payload example for "200" response messages for a "getClassesForUser" operation.

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

Code 6.42.2 - JSON payload example for "200" response messages for a "getCourse" operation.

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

Code 6.44.2 - JSON payload example for "200" response messages for a "getCoursesForSchool" operation.

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

Code 6.46.2 - JSON payload example for "200" response messages for a "getDemographics" operation.

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

Code 6.48.2 - JSON payload example for "200" response messages for a "getEnrollment" operation.

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

Code 6.50.2 - JSON payload example for "200" response messages for a "getEnrollmentsForClassInSchool" operation.

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

Code 6.52.2 - JSON payload example for "200" response messages for a "getEnrollmentsForSchool" operation.

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

Code 6.54.2 - JSON payload example for "200" response messages for a "getGradingPeriod" operation.

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

Code 6.56.2 - JSON payload example for "200" response messages for a "getGradingPeriodsForTerm" operation.

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

Code 6.58.2 - JSON payload example for "200" response messages for a "getOrg" operation.

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

Code 6.60.2 - JSON payload example for "200" response messages for a "getSchool" operation.

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

Code 6.62.2 - JSON payload example for "200" response messages for a "getStudent" operation.

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

Code 6.64.2 - JSON payload example for "200" response messages for a "getStudentsForClass" operation.

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

Code 6.66.2 - JSON payload example for "200" response messages for a "getStudentsForClassInSchool" operation.

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

Code 6.68.2 - JSON payload example for "200" response messages for a "getStudentsForSchool" operation.

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

Code 6.70.2 - JSON payload example for "200" response messages for a "getTeacher" operation.

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

Code 6.72.2 - JSON payload example for "200" response messages for a "getTeachersForClass" operation.

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

Code 6.74.2 - JSON payload example for "200" response messages for a "getTeachersForClassInSchool" operation.

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

Code 6.76.2 - JSON payload example for "200" response messages for a "getTeachersForSchool" operation.

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

Code 6.78.2 - JSON payload example for "200" response messages for a "getTerm" operation.

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

Code 6.80.2 - JSON payload example for "200" response messages for a "getTermsForSchool" operation.

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

Code 6.82.2 - JSON payload example for "200" response messages for a "getUser" operation.

toc | top

1. Introduction

This Section is NOT NORMATIVE.

1.1. Scope and Context

This document is the OneRoster 1.2 Rostering Service REST/JSON Binding and as such it is used as the basis for the implementing the OR Rostering Service Model. The key related documents are:

The OR Rostering service model and this REST/JSON binding is described using the Unified Modeling Language (UML) based upon the 1EdTech Global Model Driven Specification approach and the associated modelling toolkit [I-BAT, 06]. This means that this specification is based upon the concepts of:

Key artefacts produced as part of the REST/JSON binding description are the associated OpenAPI files based upon the OpenAPI Specifications version 2 [OAS, 14] and version 3 [OAS, 17].

1.2. Conventions

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

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

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

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

1.3. Changes in Rostering Service 1.2

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

1.4. Structure of this Document

The structure of the rest of this document is:

2. REST Endpoints An explanation of the relationship between the logical service operations (as defined in the OneRoster Rostering Service Model) and how these are realised as the corresponding set of REST endpoints (including the set of query parameters that are permitted);
3. Using the Endpoint Parameters A detailed explanation of how the permitted set of query parameters should be used to control the volume and type of information that will be supplied by the service provider;
4. Security Framework The underlying security framework within which this REST/JSON binding is designed to operate. This includes the details about authentication and how the payload integrity may be protected;
5. UML to JSON Payload Mapping The description of how the JSON payloads are derived from the equivalent UML data model definitions [OR-ROS-SM-12]. Each UML class and attribute is mapped to the equivalent JSON object and property;
6. JSON Payloads Examples of the set of JSON payloads that are sent by the consumer (the request) and returned by the service provider (response). These examples are focused on the expected structure of a request/response and do not include actual payloads;
7. OpenAPI Description A detailed explanation of the structure of the OpenAPI files that are produced as part of the specification documentation. The associated JSON and YAML files are supplied in Appendix B;
8. Extending and Profiling the Binding An explanation of how the service can be extended, using the permitted points of extension and/or profiled. Profiling is the process by which the specification is tailored to a specific set of market/domain requirements;
References The set of cited documents, normative and informative, that are used to support the technical details in this document;
Appendix A Model Binding Terms and Concepts An overview of the model driven approach, the concepts and the terms used by IMS to create the service model REST/JSON binding definitions (based upon a profile of UML) and the accompanying documentation (including this binding);
Appendix B OpenAPI Listings The listings of the OpenAPI(JSON) and OpenAPI(YAML) files that have been created to define the REST/JSON binding in a machine-readable format i.e. conforming to the OpenAPI 2.0 specification;
Appendix C JSON Schema Listings The listings of the set of JSON Schema files (based upon IETF JSON Schema Draft 7) that have been created for the validation of the set of JSON payloads that are exchanged as part of this service.

1.5. Nomenclature

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

toc | top

2. REST Endpoints

This Section is NORMATIVE.

2.1 Mapping of the Service Operations to the REST Endpoints

The mapping between the service operations and the REST Endpoint URL-leaf values are listed in Table 2.1. The syntax and semantics for this mapping are described in Appendix A1.1.

Table 2.1 - The Set of REST Endpoint URL-leaf Values.
Service Call REST Endpoint HTTP Verb
getAcademicSession /academicSessions/{sourcedId} GET
getAllAcademicSessions /academicSessions GET
getAllClasses /classes GET
getAllCourses /courses GET
getAllDemographics /demographics GET
getAllEnrollments /enrollments GET
getAllGradingPeriods /gradingPeriods GET
getAllOrgs /orgs GET
getAllSchools /schools GET
getAllStudents /students GET
getAllTeachers /teachers GET
getAllTerms /terms GET
getAllUsers /users GET
getClass /classes/{sourcedId} GET
getClassesForCourse /courses/{courseSourcedId}/classes GET
getClassesForSchool /schools/{schoolSourcedId}/classes GET
getClassesForStudent /students/{studentSourcedId}/classes GET
getClassesForTeacher /teachers/{teacherSourcedId}/classes GET
getClassesForTerm /terms/{termSourcedId}/classes GET
getClassesForUser /users/{userSourcedId}/classes GET
getCourse /courses/{sourcedId} GET
getCoursesForSchool /schools/{schoolSourcedId}/courses GET
getDemographics /demographics/{sourcedId} GET
getEnrollment /enrollments/{sourcedId} GET
getEnrollmentsForClassInSchool /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments GET
getEnrollmentsForSchool /schools/{schoolSourcedId}/enrollments GET
getGradingPeriod /gradingPeriods/{sourcedId} GET
getGradingPeriodsForTerm /terms/{termSourcedId}/gradingPeriods GET
getOrg /orgs/{sourcedId} GET
getSchool /schools/{sourcedId} GET
getStudent /students/{sourcedId} GET
getStudentsForClass /classes/{classSourcedId}/students GET
getStudentsForClassInSchool /schools/{schoolSourcedId}/classes/{classSourcedId}/students GET
getStudentsForSchool /schools/{schoolSourcedId}/students GET
getTeacher /teachers/{sourcedId} GET
getTeachersForClass /classes/{classSourcedId}/teachers GET
getTeachersForClassInSchool /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers GET
getTeachersForSchool /schools/{schoolSourcedId}/teachers GET
getTerm /terms/{sourcedId} GET
getTermsForSchool /schools/{schoolSourcedId}/terms GET
getUser /users/{sourcedId} GET

2.2 API Root URL and Versioning

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

2.3 Predefined Endpoint Query Parameters

The definition of the permitted set of query parameters are defined in the following Tables. The syntax and semantics for this Tables are described in Appendix A1.2.

2.3.1 "getAcademicSession" Endpoint Query Parameters

2.3.1.1 "fields" Query Parameter

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

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

2.3.2 "getAllAcademicSessions" Endpoint Query Parameters

2.3.2.1 "limit" Query Parameter

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

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

2.3.2.2 "offset" Query Parameter

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

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

2.3.2.3 "sort" Query Parameter

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

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

2.3.2.4 "orderBy" Query Parameter

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

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

2.3.2.5 "filter" Query Parameter

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

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

2.3.2.6 "fields" Query Parameter

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

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

2.3.3 "getAllClasses" Endpoint Query Parameters

2.3.3.1 "limit" Query Parameter

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

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

2.3.3.2 "offset" Query Parameter

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

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

2.3.3.3 "sort" Query Parameter

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

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

2.3.3.4 "orderBy" Query Parameter

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

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

2.3.3.5 "filter" Query Parameter

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

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

2.3.3.6 "fields" Query Parameter

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

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

2.3.4 "getAllCourses" Endpoint Query Parameters

2.3.4.1 "limit" Query Parameter

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

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

2.3.4.2 "offset" Query Parameter

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

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

2.3.4.3 "sort" Query Parameter

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

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

2.3.4.4 "orderBy" Query Parameter

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

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

2.3.4.5 "filter" Query Parameter

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

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

2.3.4.6 "fields" Query Parameter

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

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

2.3.5 "getAllDemographics" Endpoint Query Parameters

2.3.5.1 "limit" Query Parameter

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

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

2.3.5.2 "offset" Query Parameter

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

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

2.3.5.3 "sort" Query Parameter

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

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

2.3.5.4 "orderBy" Query Parameter

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

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

2.3.5.5 "filter" Query Parameter

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

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

2.3.5.6 "fields" Query Parameter

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

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

2.3.6 "getAllEnrollments" Endpoint Query Parameters

2.3.6.1 "limit" Query Parameter

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

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

2.3.6.2 "offset" Query Parameter

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

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

2.3.6.3 "sort" Query Parameter

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

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

2.3.6.4 "orderBy" Query Parameter

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

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

2.3.6.5 "filter" Query Parameter

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

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

2.3.6.6 "fields" Query Parameter

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

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

2.3.7 "getAllGradingPeriods" Endpoint Query Parameters

2.3.7.1 "limit" Query Parameter

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

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

2.3.7.2 "offset" Query Parameter

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

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

2.3.7.3 "sort" Query Parameter

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

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

2.3.7.4 "orderBy" Query Parameter

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

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

2.3.7.5 "filter" Query Parameter

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

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

2.3.7.6 "fields" Query Parameter

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

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

2.3.8 "getAllOrgs" Endpoint Query Parameters

2.3.8.1 "limit" Query Parameter

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

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

2.3.8.2 "offset" Query Parameter

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

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

2.3.8.3 "sort" Query Parameter

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

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

2.3.8.4 "orderBy" Query Parameter

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

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

2.3.8.5 "filter" Query Parameter

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

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

2.3.8.6 "fields" Query Parameter

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

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

2.3.9 "getAllSchools" Endpoint Query Parameters

2.3.9.1 "limit" Query Parameter

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

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

2.3.9.2 "offset" Query Parameter

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

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

2.3.9.3 "sort" Query Parameter

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

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

2.3.9.4 "orderBy" Query Parameter

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

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

2.3.9.5 "filter" Query Parameter

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

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

2.3.9.6 "fields" Query Parameter

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

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

2.3.10 "getAllStudents" Endpoint Query Parameters

2.3.10.1 "limit" Query Parameter

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

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

2.3.10.2 "offset" Query Parameter

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

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

2.3.10.3 "sort" Query Parameter

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

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

2.3.10.4 "orderBy" Query Parameter

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

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

2.3.10.5 "filter" Query Parameter

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

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

2.3.10.6 "fields" Query Parameter

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

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

2.3.11 "getAllTeachers" Endpoint Query Parameters

2.3.11.1 "limit" Query Parameter

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

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

2.3.11.2 "offset" Query Parameter

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

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

2.3.11.3 "sort" Query Parameter

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

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

2.3.11.4 "orderBy" Query Parameter

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

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

2.3.11.5 "filter" Query Parameter

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

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

2.3.11.6 "fields" Query Parameter

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

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

2.3.12 "getAllTerms" Endpoint Query Parameters

2.3.12.1 "limit" Query Parameter

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

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

2.3.12.2 "offset" Query Parameter

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

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

2.3.12.3 "sort" Query Parameter

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

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

2.3.12.4 "orderBy" Query Parameter

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

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

2.3.12.5 "filter" Query Parameter

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

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

2.3.12.6 "fields" Query Parameter

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

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

2.3.13 "getAllUsers" Endpoint Query Parameters

2.3.13.1 "limit" Query Parameter

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

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

2.3.13.2 "offset" Query Parameter

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

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

2.3.13.3 "sort" Query Parameter

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

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

2.3.13.4 "orderBy" Query Parameter

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

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

2.3.13.5 "filter" Query Parameter

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

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

2.3.13.6 "fields" Query Parameter

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

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

2.3.14 "getClass" Endpoint Query Parameters

2.3.14.1 "fields" Query Parameter

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

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

2.3.15 "getClassesForCourse" Endpoint Query Parameters

2.3.15.1 "limit" Query Parameter

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

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

2.3.15.2 "offset" Query Parameter

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

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

2.3.15.3 "sort" Query Parameter

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

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

2.3.15.4 "orderBy" Query Parameter

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

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

2.3.15.5 "filter" Query Parameter

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

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

2.3.15.6 "fields" Query Parameter

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

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

2.3.16 "getClassesForSchool" Endpoint Query Parameters

2.3.16.1 "limit" Query Parameter

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

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

2.3.16.2 "offset" Query Parameter

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

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

2.3.16.3 "sort" Query Parameter

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

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

2.3.16.4 "orderBy" Query Parameter

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

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

2.3.16.5 "filter" Query Parameter

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

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

2.3.16.6 "fields" Query Parameter

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

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

2.3.17 "getClassesForStudent" Endpoint Query Parameters

2.3.17.1 "limit" Query Parameter

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

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

2.3.17.2 "offset" Query Parameter

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

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

2.3.17.3 "sort" Query Parameter

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

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

2.3.17.4 "orderBy" Query Parameter

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

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

2.3.17.5 "filter" Query Parameter

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

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

2.3.17.6 "fields" Query Parameter

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

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

2.3.18 "getClassesForTeacher" Endpoint Query Parameters

2.3.18.1 "limit" Query Parameter

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

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

2.3.18.2 "offset" Query Parameter

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

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

2.3.18.3 "sort" Query Parameter

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

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

2.3.18.4 "orderBy" Query Parameter

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

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

2.3.18.5 "filter" Query Parameter

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

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

2.3.18.6 "fields" Query Parameter

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

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

2.3.19 "getClassesForTerm" Endpoint Query Parameters

2.3.19.1 "limit" Query Parameter

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

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

2.3.19.2 "offset" Query Parameter

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

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

2.3.19.3 "sort" Query Parameter

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

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

2.3.19.4 "orderBy" Query Parameter

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

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

2.3.19.5 "filter" Query Parameter

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

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

2.3.19.6 "fields" Query Parameter

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

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

2.3.20 "getClassesForUser" Endpoint Query Parameters

2.3.20.1 "limit" Query Parameter

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

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

2.3.20.2 "offset" Query Parameter

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

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

2.3.20.3 "sort" Query Parameter

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

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

2.3.20.4 "orderBy" Query Parameter

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

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

2.3.20.5 "filter" Query Parameter

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

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

2.3.20.6 "fields" Query Parameter

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

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

2.3.21 "getCourse" Endpoint Query Parameters

2.3.21.1 "fields" Query Parameter

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

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

2.3.22 "getCoursesForSchool" Endpoint Query Parameters

2.3.22.1 "limit" Query Parameter

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

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

2.3.22.2 "offset" Query Parameter

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

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

2.3.22.3 "sort" Query Parameter

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

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

2.3.22.4 "orderBy" Query Parameter

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

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

2.3.22.5 "filter" Query Parameter

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

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

2.3.22.6 "fields" Query Parameter

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

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

2.3.23 "getDemographics" Endpoint Query Parameters

2.3.23.1 "fields" Query Parameter

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

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

2.3.24 "getEnrollment" Endpoint Query Parameters

2.3.24.1 "fields" Query Parameter

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

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

2.3.25 "getEnrollmentsForClassInSchool" Endpoint Query Parameters

2.3.25.1 "limit" Query Parameter

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

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

2.3.25.2 "offset" Query Parameter

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

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

2.3.25.3 "sort" Query Parameter

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

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

2.3.25.4 "orderBy" Query Parameter

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

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

2.3.25.5 "filter" Query Parameter

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

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

2.3.25.6 "fields" Query Parameter

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

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

2.3.26 "getEnrollmentsForSchool" Endpoint Query Parameters

2.3.26.1 "limit" Query Parameter

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

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

2.3.26.2 "offset" Query Parameter

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

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

2.3.26.3 "sort" Query Parameter

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

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

2.3.26.4 "orderBy" Query Parameter

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

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

2.3.26.5 "filter" Query Parameter

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

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

2.3.26.6 "fields" Query Parameter

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

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

2.3.27 "getGradingPeriod" Endpoint Query Parameters

2.3.27.1 "fields" Query Parameter

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

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

2.3.28 "getGradingPeriodsForTerm" Endpoint Query Parameters

2.3.28.1 "limit" Query Parameter

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

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

2.3.28.2 "offset" Query Parameter

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

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

2.3.28.3 "sort" Query Parameter

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

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

2.3.28.4 "orderBy" Query Parameter

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

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

2.3.28.5 "filter" Query Parameter

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

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

2.3.28.6 "fields" Query Parameter

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

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

2.3.29 "getOrg" Endpoint Query Parameters

2.3.29.1 "fields" Query Parameter

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

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

2.3.30 "getSchool" Endpoint Query Parameters

2.3.30.1 "fields" Query Parameter

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

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

2.3.31 "getStudent" Endpoint Query Parameters

2.3.31.1 "fields" Query Parameter

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

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

2.3.32 "getStudentsForClass" Endpoint Query Parameters

2.3.32.1 "limit" Query Parameter

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

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

2.3.32.2 "offset" Query Parameter

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

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

2.3.32.3 "sort" Query Parameter

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

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

2.3.32.4 "orderBy" Query Parameter

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

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

2.3.32.5 "filter" Query Parameter

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

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

2.3.32.6 "fields" Query Parameter

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

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

2.3.33 "getStudentsForClassInSchool" Endpoint Query Parameters

2.3.33.1 "limit" Query Parameter

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

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

2.3.33.2 "offset" Query Parameter

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

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

2.3.33.3 "sort" Query Parameter

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

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

2.3.33.4 "orderBy" Query Parameter

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

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

2.3.33.5 "filter" Query Parameter

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

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

2.3.33.6 "fields" Query Parameter

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

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

2.3.34 "getStudentsForSchool" Endpoint Query Parameters

2.3.34.1 "limit" Query Parameter

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

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

2.3.34.2 "offset" Query Parameter

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

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

2.3.34.3 "sort" Query Parameter

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

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

2.3.34.4 "orderBy" Query Parameter

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

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

2.3.34.5 "filter" Query Parameter

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

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

2.3.34.6 "fields" Query Parameter

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

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

2.3.35 "getTeacher" Endpoint Query Parameters

2.3.35.1 "fields" Query Parameter

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

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

2.3.36 "getTeachersForClass" Endpoint Query Parameters

2.3.36.1 "limit" Query Parameter

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

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

2.3.36.2 "offset" Query Parameter

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

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

2.3.36.3 "sort" Query Parameter

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

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

2.3.36.4 "orderBy" Query Parameter

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

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

2.3.36.5 "filter" Query Parameter

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

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

2.3.36.6 "fields" Query Parameter

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

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

2.3.37 "getTeachersForClassInSchool" Endpoint Query Parameters

2.3.37.1 "limit" Query Parameter

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

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

2.3.37.2 "offset" Query Parameter

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

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

2.3.37.3 "sort" Query Parameter

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

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

2.3.37.4 "orderBy" Query Parameter

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

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

2.3.37.5 "filter" Query Parameter

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

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

2.3.37.6 "fields" Query Parameter

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

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

2.3.38 "getTeachersForSchool" Endpoint Query Parameters

2.3.38.1 "limit" Query Parameter

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

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

2.3.38.2 "offset" Query Parameter

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

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

2.3.38.3 "sort" Query Parameter

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

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

2.3.38.4 "orderBy" Query Parameter

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

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

2.3.38.5 "filter" Query Parameter

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

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

2.3.38.6 "fields" Query Parameter

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

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

2.3.39 "getTerm" Endpoint Query Parameters

2.3.39.1 "fields" Query Parameter

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

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

2.3.40 "getTermsForSchool" Endpoint Query Parameters

2.3.40.1 "limit" Query Parameter

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

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

2.3.40.2 "offset" Query Parameter

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

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

2.3.40.3 "sort" Query Parameter

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

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

2.3.40.4 "orderBy" Query Parameter

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

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

2.3.40.5 "filter" Query Parameter

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

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

2.3.40.6 "fields" Query Parameter

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

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

2.3.41 "getUser" Endpoint Query Parameters

2.3.41.1 "fields" Query Parameter

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

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

2.4 HTTP Code Handling

A service provider will either return a data payload or a payload that indicates the cause of the failure. The list of HTTP Codes and handling for each endpoint is shown in Table 2.4. The syntax and semantics for this tabular description are described in Appendix A1.3.

Table 2.4 - The List of HTTP Codes and Handling for each Endpoint.
REST Endpoint HTTP Verb HTTP Codes and Handling
/academicSessions GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AcademicSessionSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/academicSessions/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleAcademicSessionDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/classes/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleClassDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/students GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/teachers GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/courses GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure CourseSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/courses/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleCourseDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/courses/{courseSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/demographics GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure DemographicsSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/demographics/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleDemographicsDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/enrollments GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure EnrollmentSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/enrollments/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleEnrollmentDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/gradingPeriods GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AcademicSessionSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/gradingPeriods/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleAcademicSessionDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/orgs GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure OrgSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/orgs/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleOrgDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure OrgSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleOrgDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/courses GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure CourseSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure EnrollmentSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/classes/{classSourcedId}/students GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/enrollments GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure EnrollmentSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/students GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/teachers GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/terms GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AcademicSessionSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/students GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/students/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleUserDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/students/{studentSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/teachers GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/teachers/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleUserDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/teachers/{teacherSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/terms GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AcademicSessionSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/terms/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleAcademicSessionDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/terms/{termSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/terms/{termSourcedId}/gradingPeriods GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AcademicSessionSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/users GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure UserSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleUserDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/classes GET
  • 200 - the request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ClassSetDType.
  • 400 - either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - this is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - this code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.

2.5 Service Discovery

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

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

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

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

toc | top

3. Using the Endpoint Parameters

This Section is NOT NORMATIVE.

3.1. Pagination

For requests of collections i.e. the response for the 'getAllUsers()' call, there is a danger of data overload. To avoid this, implementations should adopt a pagination mechanism. Pagination is controlled via two parameters that are appended to the request:

An example of a request to return the first 10 resources in a collection of students:

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10

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

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?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/rostering/v1p2/users?limit=10&offset=20>; rel="next",
    <https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=3&offset=500>; rel="last",
    <https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=0>; rel="first",
    <https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=0>; rel="prev"

3.2. Sorting

It should be possible for collections, i.e. the response for the 'getAllUsers()' call etc. to be returned in a sorted order. It should be possible to sort the collection based on any single data element in the core description of the resource. Sort requests MUST make use of the reserved word "sort" (?sort= data_field), and optionally the reserved word orderBy for which:

An example of a request to ask for a list of users sorted into ascending lastName order:

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?sort=lastName&orderBy=asc

Sorting should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.

If the consumer requests that the data is to be sorted by a non-existent field, data MAY be returned in the service provider's default sort order or an error response MAY be returned.

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

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

    ?sort=<Nested_Object>.<Property>

3.3. Filtering

For the calls that request collections e.g. 'getAllUsers()' 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 'users', it MUST be possible to filter on: 'firstName', 'lastName', 'dateLastModified', etc.

Predicates MUST be chosen from those listed below:

Values MUST be enclosed within single quotes and they MUST be handled as case insensitive. When the response is returned it is the receiving system that should consider whether or not case-sensitivity is important.

The <logical> parameters allow more complex queries to be created. For version 1.2, 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 users with a 'lastName' of 'Smythe' is:

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName='Smythe'

URL encoded as:

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName%3D%27Smythe%27

Filter queries MUST be URL encoded.

An example of a complex query for all users with a lastName='Smythe' AND dateLastModified>'2016-12-12T00:00:00Z' is:

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName%3D%27Smythe%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 'preferredName' field when the value of the field is 'name1,name2,name3' the following filters would return:

This means filtering using the '=' has 'AND' semantics and the '~' has 'OR' semantics. Filtering rules should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.

If the consumer requests that data be filtered by a non-existent field, NO data is returned and the server must provide the associated transaction status code information of:

3.4. Field Selection

For the read collection calls, such as 'getAllUsers()', 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 Users returning only the 'firstname' and 'lastname':

    GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?fields=firstname,lastname

If the consumer requests that data be selected using non-existent field, ALL data for the record is returned. If the consumer requests that data be selected using a blank field the request will be treated as an invalid request. The server must provide the associated transaction status code information of:

toc | top

4. Security Framework

This Section is NORMATIVE.

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

4.1. Transport Security

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

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

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

4.2. Authorization

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

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

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

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

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

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

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

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

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

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

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

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

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

4.3. Scopes

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

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

The core set of read operations to enable information about collections or a single object to be obtained. The set of service operations covered by this scope are listed in Table 4.3.1.

Table 4.3.1 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" Scope.
Operation HTTP Verb Endpoint
getAcademicSession GET /academicSessions/{sourcedId}
getAllAcademicSessions GET /academicSessions
getAllClasses GET /classes
getAllCourses GET /courses
getAllEnrollments GET /enrollments
getAllGradingPeriods GET /gradingPeriods
getAllOrgs GET /orgs
getAllSchools GET /schools
getAllStudents GET /students
getAllTeachers GET /teachers
getAllTerms GET /terms
getAllUsers GET /users
getClass GET /classes/{sourcedId}
getCourse GET /courses/{sourcedId}
getEnrollment GET /enrollments/{sourcedId}
getGradingPeriod GET /gradingPeriods/{sourcedId}
getOrg GET /orgs/{sourcedId}
getSchool GET /schools/{sourcedId}
getStudent GET /students/{sourcedId}
getTeacher GET /teachers/{sourcedId}
getTerm GET /terms/{sourcedId}
getUser GET /users/{sourcedId}

4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" Scope

The read operations to provide all demographics or a single demographics object to be obtained. The set of service operations covered by this scope are listed in Table 4.3.2.

Table 4.3.2 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" Scope.
Operation HTTP Verb Endpoint
getAllDemographics GET /demographics
getDemographics GET /demographics/{sourcedId}

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

Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained. The set of service operations covered by this scope are listed in Table 4.3.3.

Table 4.3.3 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" Scope.
Operation HTTP Verb Endpoint
getAcademicSession GET /academicSessions/{sourcedId}
getAllAcademicSessions GET /academicSessions
getAllClasses GET /classes
getAllCourses GET /courses
getAllEnrollments GET /enrollments
getAllGradingPeriods GET /gradingPeriods
getAllOrgs GET /orgs
getAllSchools GET /schools
getAllStudents GET /students
getAllTeachers GET /teachers
getAllTerms GET /terms
getAllUsers GET /users
getClass GET /classes/{sourcedId}
getClassesForCourse GET /courses/{courseSourcedId}/classes
getClassesForSchool GET /schools/{schoolSourcedId}/classes
getClassesForStudent GET /students/{studentSourcedId}/classes
getClassesForTeacher GET /teachers/{teacherSourcedId}/classes
getClassesForTerm GET /terms/{termSourcedId}/classes
getClassesForUser GET /users/{userSourcedId}/classes
getCourse GET /courses/{sourcedId}
getCoursesForSchool GET /schools/{schoolSourcedId}/courses
getEnrollment GET /enrollments/{sourcedId}
getEnrollmentsForClassInSchool GET /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments
getEnrollmentsForSchool GET /schools/{schoolSourcedId}/enrollments
getGradingPeriod GET /gradingPeriods/{sourcedId}
getGradingPeriodsForTerm GET /terms/{termSourcedId}/gradingPeriods
getOrg GET /orgs/{sourcedId}
getSchool GET /schools/{sourcedId}
getStudent GET /students/{sourcedId}
getStudentsForClass GET /classes/{classSourcedId}/students
getStudentsForClassInSchool GET /schools/{schoolSourcedId}/classes/{classSourcedId}/students
getStudentsForSchool GET /schools/{schoolSourcedId}/students
getTeacher GET /teachers/{sourcedId}
getTeachersForClass GET /classes/{classSourcedId}/teachers
getTeachersForClassInSchool GET /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers
getTeachersForSchool GET /schools/{schoolSourcedId}/teachers
getTerm GET /terms/{sourcedId}
getTermsForSchool GET /schools/{schoolSourcedId}/terms
getUser GET /users/{sourcedId}

toc | top

5. UML to JSON Payload Mapping

This Section is NOT NORMATIVE.

5.1 Service Parameter Payload Properties UML/JSON Mapping

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

Table 5.1 UML/JSON Mapping for the Service Parameters.
Operation Name Parameter Name UML Class JSON Name JSON Type JSON Schema Data Type
getAcademicSession academicSession SingleAcademicSession academicSession Object SingleAcademicSessionDType
getAllAcademicSessions academicSessions AcademicSessionSet academicSessions Array of Objects AcademicSessionSetDType
getAllClasses classes ClassSet classes Array of Objects ClassSetDType
getAllCourses courses CourseSet courses Array of Objects CourseSetDType
getAllDemographics demographics DemographicsSet demographics Array of Objects DemographicsSetDType
getAllEnrollments enrollments EnrollmentSet enrollments Array of Objects EnrollmentSetDType
getAllGradingPeriods academicSessions AcademicSessionSet academicSessions Array of Objects AcademicSessionSetDType
getAllOrgs orgs OrgSet orgs Array of Objects OrgSetDType
getAllSchools orgs OrgSet orgs Array of Objects OrgSetDType
getAllStudents users UserSet users Array of Objects UserSetDType
getAllTeachers users UserSet users Array of Objects UserSetDType
getAllTerms academicSessions AcademicSessionSet academicSessions Array of Objects AcademicSessionSetDType
getAllUsers users UserSet users Array of Objects UserSetDType
getClass class SingleClass class Object SingleClassDType
getClassesForCourse classes ClassSet classes Array of Objects ClassSetDType
getClassesForSchool classes ClassSet classes Array of Objects ClassSetDType
getClassesForStudent classes ClassSet classes Array of Objects ClassSetDType
getClassesForTeacher classes ClassSet classes Array of Objects ClassSetDType
getClassesForTerm classes ClassSet classes Array of Objects ClassSetDType
getClassesForUser classes ClassSet classes Array of Objects ClassSetDType
getCourse course SingleCourse course Object SingleCourseDType
getCoursesForSchool courses CourseSet courses Array of Objects CourseSetDType
getDemographics demographics SingleDemographics demographics Object SingleDemographicsDType
getEnrollment enrollment SingleEnrollment enrollment Object SingleEnrollmentDType
getEnrollmentsForClassInSchool enrollments EnrollmentSet enrollments Array of Objects EnrollmentSetDType
getEnrollmentsForSchool enrollments EnrollmentSet enrollments Array of Objects EnrollmentSetDType
getGradingPeriod academicSession SingleAcademicSession academicSession Object SingleAcademicSessionDType
getGradingPeriodsForTerm academicSessions AcademicSessionSet academicSessions Array of Objects AcademicSessionSetDType
getOrg org SingleOrg org Object SingleOrgDType
getSchool org SingleOrg org Object SingleOrgDType
getStudent user SingleUser user Object SingleUserDType
getStudentsForClass users UserSet users Array of Objects UserSetDType
getStudentsForClassInSchool users UserSet users Array of Objects UserSetDType
getStudentsForSchool users UserSet users Array of Objects UserSetDType
getTeacher user SingleUser user Object SingleUserDType
getTeachersForClass users UserSet users Array of Objects UserSetDType
getTeachersForClassInSchool users UserSet users Array of Objects UserSetDType
getTeachersForSchool users UserSet users Array of Objects UserSetDType
getTerm academicSession SingleAcademicSession academicSession Object SingleAcademicSessionDType
getTermsForSchool academicSessions AcademicSessionSet academicSessions Array of Objects AcademicSessionSetDType
getUser user SingleUser user Object SingleUserDType

5.2 Service Parameter Payload Class UML/JSON Mapping

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

5.2.1 OrgSet Service Parameter Payload Class Mapping

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

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

5.2.2 SingleOrg Service Parameter Payload Class Mapping

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

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

5.2.3 CourseSet Service Parameter Payload Class Mapping

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

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

5.2.4 SingleCourse Service Parameter Payload Class Mapping

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

Table 5.2.4 UML/JSON Mapping for the "SingleCourse" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleCourse Payload Parameter Container [ Sequence ] - N/A - SingleCourseDType Object
  • course
Attribute Course [1] course Property

5.2.5 ClassSet Service Parameter Payload Class Mapping

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

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

5.2.6 SingleClass Service Parameter Payload Class Mapping

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

Table 5.2.6 UML/JSON Mapping for the "SingleClass" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleClass Payload Parameter Container [ Sequence ] - N/A - SingleClassDType Object
  • class
Attribute Class [1] class Property

5.2.7 UserSet Service Parameter Payload Class Mapping

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

Table 5.2.7 UML/JSON Mapping for the "UserSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserSet Payload Parameter Container [ Sequence ] - N/A - UserSetDType Object
  • users
Attribute User [0.. *] users Array of Properties

5.2.8 EnrollmentSet Service Parameter Payload Class Mapping

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

Table 5.2.8 UML/JSON Mapping for the "EnrollmentSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
EnrollmentSet Payload Parameter Container [ Sequence ] - N/A - EnrollmentSetDType Object
  • enrollments
Attribute Enrollment [0.. *] enrollments Array of Properties

5.2.9 SingleEnrollment Service Parameter Payload Class Mapping

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

Table 5.2.9 UML/JSON Mapping for the "SingleEnrollment" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleEnrollment Payload Parameter Container [ Sequence ] - N/A - SingleEnrollmentDType Object
  • enrollment
Attribute Enrollment [1] enrollment Property

5.2.10 DemographicsSet Service Parameter Payload Class Mapping

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

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

5.2.11 SingleDemographics Service Parameter Payload Class Mapping

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

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

5.2.12 AcademicSessionSet Service Parameter Payload Class Mapping

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

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

5.2.13 SingleAcademicSession Service Parameter Payload Class Mapping

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

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

5.2.14 SingleUser Service Parameter Payload Class Mapping

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

Table 5.2.14 UML/JSON Mapping for the "SingleUser" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleUser Payload Parameter Container [ Sequence ] - N/A - SingleUserDType Object
  • user
Attribute User [1] user Property

5.3 Payload Classes UML/JSON Mapping

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

5.3.1 AcadSessionGUIDRef Payload Class Mapping

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

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

5.3.2 AcademicSession Payload Class Mapping

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

Table 5.3.2 Payload UML/JSON Mapping for the "AcademicSession" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AcademicSession Core Container [ Unordered ] AND Inherits [ Base ] - N/A - AcademicSessionDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • startDate
Attribute PT: Date [1] startDate Property
  • endDate
Attribute PT: Date [1] endDate Property
  • type
Attribute [ Union (SessionTypeEnumExt) ] [1] type Property
  • parent
Attribute AcadSessionGUIDRef [0..1] parent Property
  • children
Attribute AcadSessionGUIDRef [0.. *] children Array of Properties
  • schoolYear
Attribute PT: NormalizedString [1] schoolYear Property

5.3.3 Base Payload Class Mapping

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

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

5.3.4 Class Payload Class Mapping

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

Table 5.3.4 Payload UML/JSON Mapping for the "Class" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Class Core Container [ Unordered ] AND Inherits [ Base ] - N/A - ClassDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • classCode
Attribute PT: NormalizedString [0..1] classCode Property
  • classType
Attribute [ Union (ClassTypeEnumExt) ] [0..1] classType Property
  • location
Attribute PT: NormalizedString [0..1] location Property
  • grades
Attribute PT: NormalizedString [0.. *] grades Array of Properties
  • subjects
Attribute PT: NormalizedString [0.. *] subjects Array of Properties
  • course
Attribute CourseGUIDRef [1] course Property
  • school
Attribute OrgGUIDRef [1] school Property
  • terms
Attribute AcadSessionGUIDRef [1.. *] terms Array of Properties
  • subjectCodes
Attribute PT: NormalizedString [0.. *] subjectCodes Array of Properties
  • periods
Attribute PT: NormalizedString [0.. *] periods Array of Properties
  • resources
Attribute ResourceGUIDRef [0.. *] resources Array of Properties

5.3.5 ClassGUIDRef Payload Class Mapping

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

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

5.3.6 Course Payload Class Mapping

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

Table 5.3.6 Payload UML/JSON Mapping for the "Course" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Course Core Container [ Unordered ] AND Inherits [ Base ] - N/A - CourseDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • schoolYear
Attribute AcadSessionGUIDRef [0..1] schoolYear Property
  • courseCode
Attribute PT: NormalizedString [1] courseCode Property
  • grades
Attribute PT: NormalizedString [0.. *] grades Array of Properties
  • subjects
Attribute PT: NormalizedString [0.. *] subjects Array of Properties
  • org
Attribute OrgGUIDRef [0..1] org Property
  • subjectCodes
Attribute PT: NormalizedString [0.. *] subjectCodes Array of Properties
  • resources
Attribute ResourceGUIDRef [0.. *] resources Array of Properties

5.3.7 CourseGUIDRef Payload Class Mapping

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

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

5.3.8 Credential Payload Class Mapping

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

Table 5.3.8 Payload UML/JSON Mapping for the "Credential" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Credential Core Container [ Unordered ] - N/A - CredentialDType Object
  • type
Attribute PT: String [1] type Property
  • username
Attribute PT: NormalizedString [1] username Property
  • password
Attribute PT: String [0..1] password Property
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

5.3.9 Demographics Payload Class Mapping

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

Table 5.3.9 Payload UML/JSON Mapping for the "Demographics" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Demographics Core Container [ Unordered ] AND Inherits [ Base ] - N/A - DemographicsDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • birthDate
Attribute PT: Date [0..1] birthDate Property
  • sex
Attribute [ Union (GenderEnumExt) ] [0..1] sex Property
  • americanIndianOrAlaskaNative
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] americanIndianOrAlaskaNative Property
  • asian
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] asian Property
  • blackOrAfricanAmerican
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] blackOrAfricanAmerican Property
  • nativeHawaiianOrOtherPacificIslander
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] nativeHawaiianOrOtherPacificIslander Property
  • white
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] white Property
  • demographicRaceTwoOrMoreRaces
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] demographicRaceTwoOrMoreRaces Property
  • hispanicOrLatinoEthnicity
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] hispanicOrLatinoEthnicity Property
  • countryOfBirthCode
Attribute PT: NormalizedString [0..1] countryOfBirthCode Property
  • stateOfBirthAbbreviation
Attribute PT: NormalizedString [0..1] stateOfBirthAbbreviation Property
  • cityOfBirth
Attribute PT: NormalizedString [0..1] cityOfBirth Property
  • publicSchoolResidenceStatus
Attribute PT: NormalizedString [0..1] publicSchoolResidenceStatus Property

5.3.10 Enrollment Payload Class Mapping

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

Table 5.3.10 Payload UML/JSON Mapping for the "Enrollment" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Enrollment Core Container [ Unordered ] AND Inherits [ Base ] - N/A - EnrollmentDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • user
Attribute UserGUIDRef [1] user Property
  • class
Attribute ClassGUIDRef [1] class Property
  • school
Attribute OrgGUIDRef [1] school Property
  • role
Attribute [ Union (EnrolRoleEnumExt) ] [1] role Property
  • primary
Attribute [ Enumeration (TrueFalseEnum) ] [0..1] primary Property
  • beginDate
Attribute PT: Date [0..1] beginDate Property
  • endDate
Attribute PT: Date [0..1] endDate Property

5.3.11 GUIDRef Payload Class Mapping

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

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

5.3.12 Metadata Payload Class Mapping

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

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

5.3.13 Org Payload Class Mapping

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

Table 5.3.13 Payload UML/JSON Mapping for the "Org" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Org Core Container [ Unordered ] AND Inherits [ Base ] - N/A - OrgDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • name
Attribute PT: NormalizedString [1] name Property
  • type
Attribute [ Union (OrgTypeEnumExt) ] [1] type Property
  • identifier
Attribute DT: Identifier (PT: String) [1] identifier Property
  • parent
Attribute OrgGUIDRef [0..1] parent Property
  • children
Attribute OrgGUIDRef [0.. *] children Array of Properties

5.3.14 OrgGUIDRef Payload Class Mapping

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

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

5.3.15 ResourceGUIDRef Payload Class Mapping

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

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

5.3.16 Role Payload Class Mapping

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

Table 5.3.16 Payload UML/JSON Mapping for the "Role" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Role Core Container [ Unordered ] - N/A - RoleDType Object
  • roleType
Attribute [ Enumeration (RoleTypeEnum) ] [1] roleType Property
  • role
Attribute [ Union (RoleEnumExt) ] [1] role Property
  • org
Attribute OrgGUIDRef [1] org Property
  • userProfile
Attribute PT: AnyURI [0..1] userProfile Property
  • beginDate
Attribute PT: Date [0..1] beginDate Property
  • endDate
Attribute PT: Date [0..1] endDate Property

5.3.17 User Payload Class Mapping

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

Table 5.3.17 Payload UML/JSON Mapping for the "User" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
User Core Container [ Unordered ] AND Inherits [ Base ] - N/A - UserDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • userMasterIdentifier
Attribute PT: NormalizedString [0..1] userMasterIdentifier Property
  • username
Attribute PT: NormalizedString [0..1] username Property
  • userIds
Attribute UserId [0.. *] userIds Array of Properties
  • enabledUser
Attribute [ Enumeration (TrueFalseEnum) ] [1] enabledUser Property
  • givenName
Attribute PT: NormalizedString [1] givenName Property
  • familyName
Attribute PT: NormalizedString [1] familyName Property
  • middleName
Attribute PT: NormalizedString [0..1] middleName Property
  • preferredFirstName
Attribute PT: NormalizedString [0..1] preferredFirstName Property
  • preferredMiddleName
Attribute PT: NormalizedString [0..1] preferredMiddleName Property
  • preferredLastName
Attribute PT: NormalizedString [0..1] preferredLastName Property
  • pronouns
Attribute PT: NormalizedString [0..1] pronouns Property
  • roles
Attribute Role [1.. *] roles Array of Properties
  • userProfiles
Attribute UserProfile [0.. *] userProfiles Array of Properties
  • primaryOrg
Attribute OrgGUIDRef [0..1] primaryOrg Property
  • identifier
Attribute DT: Identifier (PT: String) [0..1] identifier Property
  • email
Attribute PT: NormalizedString [0..1] email Property
  • sms
Attribute PT: NormalizedString [0..1] sms Property
  • phone
Attribute PT: NormalizedString [0..1] phone Property
  • agents
Attribute UserGUIDRef [0.. *] agents Array of Properties
  • grades
Attribute PT: NormalizedString [0.. *] grades Array of Properties
  • password
Attribute PT: String [0..1] password Property
  • resources
Attribute ResourceGUIDRef [0.. *] resources Array of Properties

5.3.18 UserGUIDRef Payload Class Mapping

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

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

5.3.19 UserId Payload Class Mapping

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

Table 5.3.19 Payload UML/JSON Mapping for the "UserId" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserId Core Container [ Sequence ] - N/A - UserIdDType Object
  • type
Attribute PT: NormalizedString [1] type Property
  • identifier
Attribute DT: Identifier (PT: String) [1] identifier Property

5.3.20 UserProfile Payload Class Mapping

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

Table 5.3.20 Payload UML/JSON Mapping for the "UserProfile" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserProfile Core Container [ Unordered ] - N/A - UserProfileDType Object
  • profileId
Attribute PT: AnyURI [1] profileId Property
  • profileType
Attribute PT: NormalizedString [1] profileType Property
  • vendorId
Attribute PT: NormalizedString [1] vendorId Property
  • applicationId
Attribute PT: NormalizedString [0..1] applicationId Property
  • description
Attribute PT: String [0..1] description Property
  • credentials
Attribute Credential [0.. *] credentials Array of Properties

5.3.21 imsx_CodeMinor Payload Class Mapping

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

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

5.3.22 imsx_CodeMinorField Payload Class Mapping

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

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

5.3.23 imsx_StatusInfo Payload Class Mapping

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

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

5.4 Enumerated Class UML/JSON Mapping

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

Table 5.4 The UML/JSON Map Enumerated Class Definitions.
Enumeration Class Name Description
AcadSessionGUIDRefTypeEnum Enumerated value set of: { academicSession }.
BaseStatusEnum Enumerated value set of: { active | tobedeleted }.
ClassGUIDRefTypeEnum Enumerated value set of: { class }.
ClassTypeEnum Enumerated value set of: { homeroom | scheduled }.
CourseGUIDRefTypeEnum Enumerated value set of: { course }.
EnrolRoleEnum Enumerated value set of: { administrator | proctor | student | teacher }.
GenderEnum Enumerated value set of: { male | female | unspecified | other }.
OrgGUIDRefTypeEnum Enumerated value set of: { org }.
OrgTypeEnum Enumerated value set of: { department | district | local | national | school | state }.
ResourceGUIDRefTypeEnum Enumerated value set of: { resource }.
RoleEnum Enumerated value set of: { aide | counselor | districtAdministrator | guardian | parent | principal | proctor | relative | siteAdministrator | student | systemAdministrator | teacher }.
RoleTypeEnum Enumerated value set of: { primary | secondary }.
SessionTypeEnum Enumerated value set of: { gradingPeriod | semester | schoolYear | term }.
TrueFalseEnum Enumerated value set of: { true | false }.
UserGUIDRefTypeEnum Enumerated value set of: { user }.
imsx_CodeMajorEnum Enumerated value set of: { success | processing | failure | unsupported }.
imsx_CodeMinorValueEnum Enumerated value set of: { fullsuccess | invalid_filter_field | invalid_selection_field | invaliddata | unauthorisedrequest | forbidden | server_busy | unknownobject | internal_server_error }.
imsx_SeverityEnum Enumerated value set of: { status | warning | error }.

5.5 Enumerated List Class UML/JSON Mapping

There are no enumerated list class definitions.

5.6 Union Class UML/JSON Mapping

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

Table 5.6 The UML/JSON Map Union Class Definitions.
Union Class Name Description
ClassTypeEnumExt This is a value from one of the set of data-types: ClassTypeEnum, EnumExtString
EnrolRoleEnumExt This is a value from one of the set of data-types: EnrolRoleEnum, EnumExtString
GenderEnumExt This is a value from one of the set of data-types: GenderEnum, EnumExtString
OrgTypeEnumExt This is a value from one of the set of data-types: OrgTypeEnum, EnumExtString
RoleEnumExt This is a value from one of the set of data-types: RoleEnum, EnumExtString
SessionTypeEnumExt This is a value from one of the set of data-types: SessionTypeEnum, EnumExtString

5.7 Primitive Type UML/JSON Mapping

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

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

toc | top

6. JSON Payloads

This Section is NOT NORMATIVE.

6.1 "getAcademicSession" Request Payload

There is no payload for this request.

6.2 "getAcademicSession" Response Payloads

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

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

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

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

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

6.2.2 Response Payloads for the HTTP Codes (200)

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

Table 6.2.2 - Tabular representation of the JSON payload for "200" response messages for a "getAcademicSession" operation.
Property Name Multiplicity JSON Data-type Description
    academicSession [1..1] Object The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

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

Code 6.2.2 - JSON payload example for "200" response messages for a "getAcademicSession" operation.
    {
        "academicSession" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "startDate" : "..String(Date)..",
            "endDate" : "..String(Date)..",
            "type" : "..select from Union..",
            "parent" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "children" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                {...},
                {...}
            ],
            "schoolYear" : "..NormalizedString.."
        }
    }
                        

6.3 "getAllAcademicSessions" Request Payload

There is no payload for this request.

6.4 "getAllAcademicSessions" Response Payloads

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

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

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

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

Code 6.4.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAcademicSessions" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.4.2 Response Payloads for the HTTP Codes (200)

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

Table 6.4.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllAcademicSessions" operation.
Property Name Multiplicity JSON Data-type Description
    academicSessions [0..*] Array [ Object ] The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

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

Code 6.4.2 - JSON payload example for "200" response messages for a "getAllAcademicSessions" operation.
    {
        "academicSessions" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "startDate" : "..String(Date)..",
                "endDate" : "..String(Date)..",
                "type" : "..select from Union..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "schoolYear" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.5 "getAllClasses" Request Payload

There is no payload for this request.

6.6 "getAllClasses" Response Payloads

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

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

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

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

Code 6.6.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllClasses" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.6.2 Response Payloads for the HTTP Codes (200)

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

Table 6.6.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllClasses" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

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

Code 6.6.2 - JSON payload example for "200" response messages for a "getAllClasses" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.7 "getAllCourses" Request Payload

There is no payload for this request.

6.8 "getAllCourses" Response Payloads

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

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

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

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

Code 6.8.1 - JSON payload example for "default, 400, 401, 403, 429, 500, 422" response messages for a "getAllCourses" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.8.2 Response Payloads for the HTTP Codes (200)

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

Table 6.8.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllCourses" operation.
Property Name Multiplicity JSON Data-type Description
    courses [0..*] Array [ Object ] The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title of the course.
            schoolYear [0..1] Object The link to academicSession i.e. the AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            courseCode [1..1] String The assigned course code.
            grades [0..*] Array [ String ] Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addresse by this course. This is a set of human readable strings.
            org [0..1] Object The link to org i.e. the 'sourcedId' of the org.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            resources [0..*] Array [ Object ] The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

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

Code 6.8.2 - JSON payload example for "200" response messages for a "getAllCourses" operation.
    {
        "courses" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "schoolYear" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "courseCode" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "org" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.9 "getAllDemographics" Request Payload

There is no payload for this request.

6.10 "getAllDemographics" Response Payloads

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

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

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

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

Code 6.10.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllDemographics" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.10.2 Response Payloads for the HTTP Codes (200)

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

Table 6.10.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllDemographics" operation.
Property Name Multiplicity JSON Data-type Description
    demographics [0..*] Array [ Object ] The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            birthDate [0..1] String (Format: date) the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.
            sex [0..1] Union(GenderEnumExt) The sex of the individual. The permitted values are from an enumerated list.
            americanIndianOrAlaskaNative [0..1] Enumeration Identification of whether or not the user is an American Indian or Alaska Native ethnicity.
            asian [0..1] Enumeration Identification of whether or not the user is of Asian ethnicity.
            blackOrAfricanAmerican [0..1] Enumeration Identification of whether or not the user is black or African American ethnicity.
            nativeHawaiianOrOtherPacificIslander [0..1] Enumeration Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.
            white [0..1] Enumeration Identification of whether or not the user is of white ethnicity.
            demographicRaceTwoOrMoreRaces [0..1] Enumeration Identification of whether or not the user has a demographic of two or more race ethnicities.
            hispanicOrLatinoEthnicity [0..1] Enumeration Identification of whether or not the user is Hispanic or of Latino ethnicity.
            countryOfBirthCode [0..1] String The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            stateOfBirthAbbreviation [0..1] String The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            cityOfBirth [0..1] String The name of the city in which the user was born.
            publicSchoolResidenceStatus [0..1] String An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.

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

Code 6.10.2 - JSON payload example for "200" response messages for a "getAllDemographics" operation.
    {
        "demographics" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "birthDate" : "..String(Date)..",
                "sex" : "..select from Union..",
                "americanIndianOrAlaskaNative" : "true"|"false",
                "asian" : "true"|"false",
                "blackOrAfricanAmerican" : "true"|"false",
                "nativeHawaiianOrOtherPacificIslander" : "true"|"false",
                "white" : "true"|"false",
                "demographicRaceTwoOrMoreRaces" : "true"|"false",
                "hispanicOrLatinoEthnicity" : "true"|"false",
                "countryOfBirthCode" : "..NormalizedString..",
                "stateOfBirthAbbreviation" : "..NormalizedString..",
                "cityOfBirth" : "..NormalizedString..",
                "publicSchoolResidenceStatus" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.11 "getAllEnrollments" Request Payload

There is no payload for this request.

6.12 "getAllEnrollments" Response Payloads

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

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

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

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

Code 6.12.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllEnrollments" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.12.2 Response Payloads for the HTTP Codes (200)

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

Table 6.12.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllEnrollments" operation.
Property Name Multiplicity JSON Data-type Description
    enrollments [0..*] Array [ Object ] The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            user [1..1] Object The link to the enrolled User i.e. the User 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [1..1] Object The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The link to the school at which the class is being provided i.e. an Org 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            role [1..1] Union(EnrolRoleEnumExt) The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
            primary [0..1] Enumeration Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
            beginDate [0..1] String (Format: date) The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [0..1] String (Format: date) The end date for the enrollment (exclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.

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

Code 6.12.2 - JSON payload example for "200" response messages for a "getAllEnrollments" operation.
    {
        "enrollments" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "user" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "role" : "..select from Union..",
                "primary" : "true"|"false",
                "beginDate" : "..String(Date)..",
                "endDate" : "..String(Date).."
            },
            {...},
            {...}
        ]
    }
                        

6.13 "getAllGradingPeriods" Request Payload

There is no payload for this request.

6.14 "getAllGradingPeriods" Response Payloads

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

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

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

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7b.

Code 6.14.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllGradingPeriods" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.14.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.14.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllGradingPeriods" operation.
Property Name Multiplicity JSON Data-type Description
    academicSessions [0..*] Array [ Object ] The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7c.

Code 6.14.2 - JSON payload example for "200" response messages for a "getAllGradingPeriods" operation.
    {
        "academicSessions" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "startDate" : "..String(Date)..",
                "endDate" : "..String(Date)..",
                "type" : "..select from Union..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "schoolYear" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.15 "getAllOrgs" Request Payload

There is no payload for this request.

6.16 "getAllOrgs" Response Payloads

6.16.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.16.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllOrgs" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.8b.

Code 6.16.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllOrgs" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.16.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.16.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllOrgs" operation.
Property Name Multiplicity JSON Data-type Description
    orgs [0..*] Array [ Object ] The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            name [1..1] String The name of the organization.
            type [1..1] Union(OrgTypeEnumExt) The type of organization. This uses a predefined vocabulary.
            identifier [1..1] String Human readable identifier for this org e.g. NCES ID.
            parent [0..1] Object The 'sourcedId' of the parent organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            children [0..*] Array [ Object ] The 'sourcedIds' for the set of child organizations.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.8c.

Code 6.16.2 - JSON payload example for "200" response messages for a "getAllOrgs" operation.
    {
        "orgs" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "name" : "..NormalizedString..",
                "type" : "..select from Union..",
                "identifier" : "..String..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "org"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.17 "getAllSchools" Request Payload

There is no payload for this request.

6.18 "getAllSchools" Response Payloads

6.18.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.18.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllSchools" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.9b.

Code 6.18.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllSchools" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.18.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.18.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllSchools" operation.
Property Name Multiplicity JSON Data-type Description
    orgs [0..*] Array [ Object ] The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            name [1..1] String The name of the organization.
            type [1..1] Union(OrgTypeEnumExt) The type of organization. This uses a predefined vocabulary.
            identifier [1..1] String Human readable identifier for this org e.g. NCES ID.
            parent [0..1] Object The 'sourcedId' of the parent organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            children [0..*] Array [ Object ] The 'sourcedIds' for the set of child organizations.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.9c.

Code 6.18.2 - JSON payload example for "200" response messages for a "getAllSchools" operation.
    {
        "orgs" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "name" : "..NormalizedString..",
                "type" : "..select from Union..",
                "identifier" : "..String..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "org"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.19 "getAllStudents" Request Payload

There is no payload for this request.

6.20 "getAllStudents" Response Payloads

6.20.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.20.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllStudents" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.10b.

Code 6.20.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllStudents" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.20.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.20.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllStudents" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.10c.

Code 6.20.2 - JSON payload example for "200" response messages for a "getAllStudents" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.21 "getAllTeachers" Request Payload

There is no payload for this request.

6.22 "getAllTeachers" Response Payloads

6.22.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.22.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllTeachers" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.11b.

Code 6.22.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllTeachers" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.22.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.22.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllTeachers" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.11c.

Code 6.22.2 - JSON payload example for "200" response messages for a "getAllTeachers" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.23 "getAllTerms" Request Payload

There is no payload for this request.

6.24 "getAllTerms" Response Payloads

6.24.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.24.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllTerms" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.12b.

Code 6.24.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllTerms" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.24.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.24.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllTerms" operation.
Property Name Multiplicity JSON Data-type Description
    academicSessions [0..*] Array [ Object ] The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.12c.

Code 6.24.2 - JSON payload example for "200" response messages for a "getAllTerms" operation.
    {
        "academicSessions" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "startDate" : "..String(Date)..",
                "endDate" : "..String(Date)..",
                "type" : "..select from Union..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "schoolYear" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.25 "getAllUsers" Request Payload

There is no payload for this request.

6.26 "getAllUsers" Response Payloads

6.26.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.26.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllUsers" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.13b.

Code 6.26.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllUsers" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.26.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.26.2 - Tabular representation of the JSON payload for "200" response messages for a "getAllUsers" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.13c.

Code 6.26.2 - JSON payload example for "200" response messages for a "getAllUsers" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.27 "getClass" Request Payload

There is no payload for this request.

6.28 "getClass" Response Payloads

6.28.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.28.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.14b.

Code 6.28.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getClass" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.28.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.28.2 - Tabular representation of the JSON payload for "200" response messages for a "getClass" operation.
Property Name Multiplicity JSON Data-type Description
    class [1..1] Object The instance of the single class for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.14c.

Code 6.28.2 - JSON payload example for "200" response messages for a "getClass" operation.
    {
        "class" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "classCode" : "..NormalizedString..",
            "classType" : "..select from Union..",
            "location" : "..NormalizedString..",
            "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "course" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "course"
            },
            "school" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "terms" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                {...},
                {...}
            ],
            "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "resources" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "resource"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.29 "getClassesForCourse" Request Payload

There is no payload for this request.

6.30 "getClassesForCourse" Response Payloads

6.30.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.30.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForCourse" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.15b.

Code 6.30.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForCourse" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.30.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.30.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForCourse" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.15c.

Code 6.30.2 - JSON payload example for "200" response messages for a "getClassesForCourse" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.31 "getClassesForSchool" Request Payload

There is no payload for this request.

6.32 "getClassesForSchool" Response Payloads

6.32.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.32.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.16b.

Code 6.32.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.32.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.32.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.16c.

Code 6.32.2 - JSON payload example for "200" response messages for a "getClassesForSchool" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.33 "getClassesForStudent" Request Payload

There is no payload for this request.

6.34 "getClassesForStudent" Response Payloads

6.34.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.34.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForStudent" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.17b.

Code 6.34.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForStudent" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.34.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.34.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForStudent" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.17c.

Code 6.34.2 - JSON payload example for "200" response messages for a "getClassesForStudent" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.35 "getClassesForTeacher" Request Payload

There is no payload for this request.

6.36 "getClassesForTeacher" Response Payloads

6.36.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.36.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForTeacher" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.18b.

Code 6.36.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForTeacher" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.36.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.36.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForTeacher" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.18c.

Code 6.36.2 - JSON payload example for "200" response messages for a "getClassesForTeacher" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.37 "getClassesForTerm" Request Payload

There is no payload for this request.

6.38 "getClassesForTerm" Response Payloads

6.38.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.38.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForTerm" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.19b.

Code 6.38.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForTerm" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.38.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.38.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForTerm" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.19c.

Code 6.38.2 - JSON payload example for "200" response messages for a "getClassesForTerm" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.39 "getClassesForUser" Request Payload

There is no payload for this request.

6.40 "getClassesForUser" Response Payloads

6.40.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.40.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForUser" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.20b.

Code 6.40.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getClassesForUser" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.40.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.40.2 - Tabular representation of the JSON payload for "200" response messages for a "getClassesForUser" operation.
Property Name Multiplicity JSON Data-type Description
    classes [0..*] Array [ Object ] The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The tile/label for the class.
            classCode [0..1] String The class code.
            classType [0..1] Union(ClassTypeEnumExt) The type of class. This is based upon an enumerated vocabulary.
            location [0..1] String The location for the class e.g. 'Room 19'.
            grades [0..*] Array [ String ] The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addressed by this class e.g. 'chemistry'.
            course [1..1] Object The link to the associated course i.e. the Course 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            school [1..1] Object The link to the associated school i.e. the School 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            terms [1..*] Array [ Object ] The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            periods [0..*] Array [ String ] The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.
            resources [0..*] Array [ Object ] The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.20c.

Code 6.40.2 - JSON payload example for "200" response messages for a "getClassesForUser" operation.
    {
        "classes" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "classCode" : "..NormalizedString..",
                "classType" : "..select from Union..",
                "location" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "terms" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "periods" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.41 "getCourse" Request Payload

There is no payload for this request.

6.42 "getCourse" Response Payloads

6.42.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 429, 500, 404, 422)

A tabular description of the response payload is shown in the Table below.

Table 6.42.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 429, 500, 404, 422" response messages for a "getCourse" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.21b.

Code 6.42.1 - JSON payload example for "default, 400, 401, 403, 429, 500, 404, 422" response messages for a "getCourse" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.42.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.42.2 - Tabular representation of the JSON payload for "200" response messages for a "getCourse" operation.
Property Name Multiplicity JSON Data-type Description
    course [1..1] Object The instance of the single course for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title of the course.
            schoolYear [0..1] Object The link to academicSession i.e. the AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            courseCode [1..1] String The assigned course code.
            grades [0..*] Array [ String ] Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addresse by this course. This is a set of human readable strings.
            org [0..1] Object The link to org i.e. the 'sourcedId' of the org.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            resources [0..*] Array [ Object ] The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.21c.

Code 6.42.2 - JSON payload example for "200" response messages for a "getCourse" operation.
    {
        "course" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "schoolYear" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "courseCode" : "..NormalizedString..",
            "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "org" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "resources" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "resource"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.43 "getCoursesForSchool" Request Payload

There is no payload for this request.

6.44 "getCoursesForSchool" Response Payloads

6.44.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.44.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getCoursesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.22b.

Code 6.44.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getCoursesForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.44.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.44.2 - Tabular representation of the JSON payload for "200" response messages for a "getCoursesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    courses [0..*] Array [ Object ] The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title of the course.
            schoolYear [0..1] Object The link to academicSession i.e. the AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            courseCode [1..1] String The assigned course code.
            grades [0..*] Array [ String ] Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            subjects [0..*] Array [ String ] The set of subjects addresse by this course. This is a set of human readable strings.
            org [0..1] Object The link to org i.e. the 'sourcedId' of the org.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            subjectCodes [0..*] Array [ String ] This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).
            resources [0..*] Array [ Object ] The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.22c.

Code 6.44.2 - JSON payload example for "200" response messages for a "getCoursesForSchool" operation.
    {
        "courses" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "schoolYear" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "courseCode" : "..NormalizedString..",
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjects" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "org" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "subjectCodes" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.45 "getDemographics" Request Payload

There is no payload for this request.

6.46 "getDemographics" Response Payloads

6.46.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.46.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getDemographics" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.23b.

Code 6.46.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getDemographics" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.46.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.46.2 - Tabular representation of the JSON payload for "200" response messages for a "getDemographics" operation.
Property Name Multiplicity JSON Data-type Description
    demographics [1..1] Object The instance of the single demographics for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            birthDate [0..1] String (Format: date) the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.
            sex [0..1] Union(GenderEnumExt) The sex of the individual. The permitted values are from an enumerated list.
            americanIndianOrAlaskaNative [0..1] Enumeration Identification of whether or not the user is an American Indian or Alaska Native ethnicity.
            asian [0..1] Enumeration Identification of whether or not the user is of Asian ethnicity.
            blackOrAfricanAmerican [0..1] Enumeration Identification of whether or not the user is black or African American ethnicity.
            nativeHawaiianOrOtherPacificIslander [0..1] Enumeration Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.
            white [0..1] Enumeration Identification of whether or not the user is of white ethnicity.
            demographicRaceTwoOrMoreRaces [0..1] Enumeration Identification of whether or not the user has a demographic of two or more race ethnicities.
            hispanicOrLatinoEthnicity [0..1] Enumeration Identification of whether or not the user is Hispanic or of Latino ethnicity.
            countryOfBirthCode [0..1] String The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            stateOfBirthAbbreviation [0..1] String The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            cityOfBirth [0..1] String The name of the city in which the user was born.
            publicSchoolResidenceStatus [0..1] String An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.23c.

Code 6.46.2 - JSON payload example for "200" response messages for a "getDemographics" operation.
    {
        "demographics" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "birthDate" : "..String(Date)..",
            "sex" : "..select from Union..",
            "americanIndianOrAlaskaNative" : "true"|"false",
            "asian" : "true"|"false",
            "blackOrAfricanAmerican" : "true"|"false",
            "nativeHawaiianOrOtherPacificIslander" : "true"|"false",
            "white" : "true"|"false",
            "demographicRaceTwoOrMoreRaces" : "true"|"false",
            "hispanicOrLatinoEthnicity" : "true"|"false",
            "countryOfBirthCode" : "..NormalizedString..",
            "stateOfBirthAbbreviation" : "..NormalizedString..",
            "cityOfBirth" : "..NormalizedString..",
            "publicSchoolResidenceStatus" : "..NormalizedString.."
        }
    }
                        

6.47 "getEnrollment" Request Payload

There is no payload for this request.

6.48 "getEnrollment" Response Payloads

6.48.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.48.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getEnrollment" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.24b.

Code 6.48.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getEnrollment" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.48.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.48.2 - Tabular representation of the JSON payload for "200" response messages for a "getEnrollment" operation.
Property Name Multiplicity JSON Data-type Description
    enrollment [1..1] Object The instance of the single enrollment for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            user [1..1] Object The link to the enrolled User i.e. the User 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [1..1] Object The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The link to the school at which the class is being provided i.e. an Org 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            role [1..1] Union(EnrolRoleEnumExt) The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
            primary [0..1] Enumeration Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
            beginDate [0..1] String (Format: date) The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [0..1] String (Format: date) The end date for the enrollment (exclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.24c.

Code 6.48.2 - JSON payload example for "200" response messages for a "getEnrollment" operation.
    {
        "enrollment" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "user" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "user"
            },
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "school" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "role" : "..select from Union..",
            "primary" : "true"|"false",
            "beginDate" : "..String(Date)..",
            "endDate" : "..String(Date).."
        }
    }
                        

6.49 "getEnrollmentsForClassInSchool" Request Payload

There is no payload for this request.

6.50 "getEnrollmentsForClassInSchool" Response Payloads

6.50.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.50.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getEnrollmentsForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.25b.

Code 6.50.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getEnrollmentsForClassInSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.50.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.50.2 - Tabular representation of the JSON payload for "200" response messages for a "getEnrollmentsForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    enrollments [0..*] Array [ Object ] The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            user [1..1] Object The link to the enrolled User i.e. the User 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [1..1] Object The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The link to the school at which the class is being provided i.e. an Org 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            role [1..1] Union(EnrolRoleEnumExt) The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
            primary [0..1] Enumeration Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
            beginDate [0..1] String (Format: date) The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [0..1] String (Format: date) The end date for the enrollment (exclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.25c.

Code 6.50.2 - JSON payload example for "200" response messages for a "getEnrollmentsForClassInSchool" operation.
    {
        "enrollments" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "user" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "role" : "..select from Union..",
                "primary" : "true"|"false",
                "beginDate" : "..String(Date)..",
                "endDate" : "..String(Date).."
            },
            {...},
            {...}
        ]
    }
                        

6.51 "getEnrollmentsForSchool" Request Payload

There is no payload for this request.

6.52 "getEnrollmentsForSchool" Response Payloads

6.52.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.52.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getEnrollmentsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.26b.

Code 6.52.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getEnrollmentsForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.52.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.52.2 - Tabular representation of the JSON payload for "200" response messages for a "getEnrollmentsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    enrollments [0..*] Array [ Object ] The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            user [1..1] Object The link to the enrolled User i.e. the User 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [1..1] Object The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The link to the school at which the class is being provided i.e. an Org 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            role [1..1] Union(EnrolRoleEnumExt) The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
            primary [0..1] Enumeration Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
            beginDate [0..1] String (Format: date) The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [0..1] String (Format: date) The end date for the enrollment (exclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.26c.

Code 6.52.2 - JSON payload example for "200" response messages for a "getEnrollmentsForSchool" operation.
    {
        "enrollments" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "user" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "role" : "..select from Union..",
                "primary" : "true"|"false",
                "beginDate" : "..String(Date)..",
                "endDate" : "..String(Date).."
            },
            {...},
            {...}
        ]
    }
                        

6.53 "getGradingPeriod" Request Payload

There is no payload for this request.

6.54 "getGradingPeriod" Response Payloads

6.54.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.54.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getGradingPeriod" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.27b.

Code 6.54.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getGradingPeriod" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.54.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.54.2 - Tabular representation of the JSON payload for "200" response messages for a "getGradingPeriod" operation.
Property Name Multiplicity JSON Data-type Description
    academicSession [1..1] Object The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.27c.

Code 6.54.2 - JSON payload example for "200" response messages for a "getGradingPeriod" operation.
    {
        "academicSession" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "startDate" : "..String(Date)..",
            "endDate" : "..String(Date)..",
            "type" : "..select from Union..",
            "parent" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "children" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                {...},
                {...}
            ],
            "schoolYear" : "..NormalizedString.."
        }
    }
                        

6.55 "getGradingPeriodsForTerm" Request Payload

There is no payload for this request.

6.56 "getGradingPeriodsForTerm" Response Payloads

6.56.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.56.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getGradingPeriodsForTerm" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.28b.

Code 6.56.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getGradingPeriodsForTerm" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.56.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.56.2 - Tabular representation of the JSON payload for "200" response messages for a "getGradingPeriodsForTerm" operation.
Property Name Multiplicity JSON Data-type Description
    academicSessions [0..*] Array [ Object ] The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.28c.

Code 6.56.2 - JSON payload example for "200" response messages for a "getGradingPeriodsForTerm" operation.
    {
        "academicSessions" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "startDate" : "..String(Date)..",
                "endDate" : "..String(Date)..",
                "type" : "..select from Union..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "schoolYear" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.57 "getOrg" Request Payload

There is no payload for this request.

6.58 "getOrg" Response Payloads

6.58.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.58.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getOrg" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.29b.

Code 6.58.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getOrg" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.58.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.58.2 - Tabular representation of the JSON payload for "200" response messages for a "getOrg" operation.
Property Name Multiplicity JSON Data-type Description
    org [1..1] Object The instance of the single org for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            name [1..1] String The name of the organization.
            type [1..1] Union(OrgTypeEnumExt) The type of organization. This uses a predefined vocabulary.
            identifier [1..1] String Human readable identifier for this org e.g. NCES ID.
            parent [0..1] Object The 'sourcedId' of the parent organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            children [0..*] Array [ Object ] The 'sourcedIds' for the set of child organizations.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.29c.

Code 6.58.2 - JSON payload example for "200" response messages for a "getOrg" operation.
    {
        "org" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "name" : "..NormalizedString..",
            "type" : "..select from Union..",
            "identifier" : "..String..",
            "parent" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "children" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.59 "getSchool" Request Payload

There is no payload for this request.

6.60 "getSchool" Response Payloads

6.60.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.60.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.30b.

Code 6.60.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.60.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.60.2 - Tabular representation of the JSON payload for "200" response messages for a "getSchool" operation.
Property Name Multiplicity JSON Data-type Description
    org [1..1] Object The instance of the single org for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            name [1..1] String The name of the organization.
            type [1..1] Union(OrgTypeEnumExt) The type of organization. This uses a predefined vocabulary.
            identifier [1..1] String Human readable identifier for this org e.g. NCES ID.
            parent [0..1] Object The 'sourcedId' of the parent organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            children [0..*] Array [ Object ] The 'sourcedIds' for the set of child organizations.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.30c.

Code 6.60.2 - JSON payload example for "200" response messages for a "getSchool" operation.
    {
        "org" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "name" : "..NormalizedString..",
            "type" : "..select from Union..",
            "identifier" : "..String..",
            "parent" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "children" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.61 "getStudent" Request Payload

There is no payload for this request.

6.62 "getStudent" Response Payloads

6.62.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 422, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.62.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getStudent" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.31b.

Code 6.62.1 - JSON payload example for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getStudent" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.62.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.62.2 - Tabular representation of the JSON payload for "200" response messages for a "getStudent" operation.
Property Name Multiplicity JSON Data-type Description
    user [1..1] Object The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.31c.

Code 6.62.2 - JSON payload example for "200" response messages for a "getStudent" operation.
    {
        "user" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "userMasterIdentifier" : "..NormalizedString..",
            "username" : "..NormalizedString..",
            "userIds" : [
                {
                    "type" : "..NormalizedString..",
                    "identifier" : "..String.."
                },
                {...},
                {...}
            ],
            "enabledUser" : "true"|"false",
            "givenName" : "..NormalizedString..",
            "familyName" : "..NormalizedString..",
            "middleName" : "..NormalizedString..",
            "preferredFirstName" : "..NormalizedString..",
            "preferredMiddleName" : "..NormalizedString..",
            "preferredLastName" : "..NormalizedString..",
            "pronouns" : "..NormalizedString..",
            "roles" : [
                {
                    "roleType" : "primary"|"secondary",
                    "role" : "..select from Union..",
                    "org" : {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "org"
                    },
                    "userProfile" : "..URI..",
                    "beginDate" : "..String(Date)..",
                    "endDate" : "..String(Date).."
                },
                {...},
                {...}
            ],
            "userProfiles" : [
                {
                    "profileId" : "..URI..",
                    "profileType" : "..NormalizedString..",
                    "vendorId" : "..NormalizedString..",
                    "applicationId" : "..NormalizedString..",
                    "description" : "..String..",
                    "credentials" : [
                        {
                            "type" : "..String..",
                            "username" : "..NormalizedString..",
                            "password" : "..String..",
                            "..permitted extension point.." : "..user defined value.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "primaryOrg" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "identifier" : "..String..",
            "email" : "..NormalizedString..",
            "sms" : "..NormalizedString..",
            "phone" : "..NormalizedString..",
            "agents" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                {...},
                {...}
            ],
            "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "password" : "..String..",
            "resources" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "resource"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.63 "getStudentsForClass" Request Payload

There is no payload for this request.

6.64 "getStudentsForClass" Response Payloads

6.64.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.64.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.32b.

Code 6.64.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForClass" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.64.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.64.2 - Tabular representation of the JSON payload for "200" response messages for a "getStudentsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.32c.

Code 6.64.2 - JSON payload example for "200" response messages for a "getStudentsForClass" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.65 "getStudentsForClassInSchool" Request Payload

There is no payload for this request.

6.66 "getStudentsForClassInSchool" Response Payloads

6.66.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.66.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.33b.

Code 6.66.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForClassInSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.66.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.66.2 - Tabular representation of the JSON payload for "200" response messages for a "getStudentsForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.33c.

Code 6.66.2 - JSON payload example for "200" response messages for a "getStudentsForClassInSchool" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.67 "getStudentsForSchool" Request Payload

There is no payload for this request.

6.68 "getStudentsForSchool" Response Payloads

6.68.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.68.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.34b.

Code 6.68.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getStudentsForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.68.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.68.2 - Tabular representation of the JSON payload for "200" response messages for a "getStudentsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.34c.

Code 6.68.2 - JSON payload example for "200" response messages for a "getStudentsForSchool" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.69 "getTeacher" Request Payload

There is no payload for this request.

6.70 "getTeacher" Response Payloads

6.70.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 422, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.70.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getTeacher" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.35b.

Code 6.70.1 - JSON payload example for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getTeacher" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.70.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.70.2 - Tabular representation of the JSON payload for "200" response messages for a "getTeacher" operation.
Property Name Multiplicity JSON Data-type Description
    user [1..1] Object The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.35c.

Code 6.70.2 - JSON payload example for "200" response messages for a "getTeacher" operation.
    {
        "user" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "userMasterIdentifier" : "..NormalizedString..",
            "username" : "..NormalizedString..",
            "userIds" : [
                {
                    "type" : "..NormalizedString..",
                    "identifier" : "..String.."
                },
                {...},
                {...}
            ],
            "enabledUser" : "true"|"false",
            "givenName" : "..NormalizedString..",
            "familyName" : "..NormalizedString..",
            "middleName" : "..NormalizedString..",
            "preferredFirstName" : "..NormalizedString..",
            "preferredMiddleName" : "..NormalizedString..",
            "preferredLastName" : "..NormalizedString..",
            "pronouns" : "..NormalizedString..",
            "roles" : [
                {
                    "roleType" : "primary"|"secondary",
                    "role" : "..select from Union..",
                    "org" : {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "org"
                    },
                    "userProfile" : "..URI..",
                    "beginDate" : "..String(Date)..",
                    "endDate" : "..String(Date).."
                },
                {...},
                {...}
            ],
            "userProfiles" : [
                {
                    "profileId" : "..URI..",
                    "profileType" : "..NormalizedString..",
                    "vendorId" : "..NormalizedString..",
                    "applicationId" : "..NormalizedString..",
                    "description" : "..String..",
                    "credentials" : [
                        {
                            "type" : "..String..",
                            "username" : "..NormalizedString..",
                            "password" : "..String..",
                            "..permitted extension point.." : "..user defined value.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "primaryOrg" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "identifier" : "..String..",
            "email" : "..NormalizedString..",
            "sms" : "..NormalizedString..",
            "phone" : "..NormalizedString..",
            "agents" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                {...},
                {...}
            ],
            "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "password" : "..String..",
            "resources" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "resource"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.71 "getTeachersForClass" Request Payload

There is no payload for this request.

6.72 "getTeachersForClass" Response Payloads

6.72.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.72.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.36b.

Code 6.72.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForClass" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.72.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.72.2 - Tabular representation of the JSON payload for "200" response messages for a "getTeachersForClass" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.36c.

Code 6.72.2 - JSON payload example for "200" response messages for a "getTeachersForClass" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.73 "getTeachersForClassInSchool" Request Payload

There is no payload for this request.

6.74 "getTeachersForClassInSchool" Response Payloads

6.74.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.74.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.37b.

Code 6.74.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForClassInSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.74.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.74.2 - Tabular representation of the JSON payload for "200" response messages for a "getTeachersForClassInSchool" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.37c.

Code 6.74.2 - JSON payload example for "200" response messages for a "getTeachersForClassInSchool" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.75 "getTeachersForSchool" Request Payload

There is no payload for this request.

6.76 "getTeachersForSchool" Response Payloads

6.76.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.76.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.38b.

Code 6.76.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTeachersForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.76.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.76.2 - Tabular representation of the JSON payload for "200" response messages for a "getTeachersForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    users [0..*] Array [ Object ] The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.38c.

Code 6.76.2 - JSON payload example for "200" response messages for a "getTeachersForSchool" operation.
    {
        "users" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "userMasterIdentifier" : "..NormalizedString..",
                "username" : "..NormalizedString..",
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..String.."
                    },
                    {...},
                    {...}
                ],
                "enabledUser" : "true"|"false",
                "givenName" : "..NormalizedString..",
                "familyName" : "..NormalizedString..",
                "middleName" : "..NormalizedString..",
                "preferredFirstName" : "..NormalizedString..",
                "preferredMiddleName" : "..NormalizedString..",
                "preferredLastName" : "..NormalizedString..",
                "pronouns" : "..NormalizedString..",
                "roles" : [
                    {
                        "roleType" : "primary"|"secondary",
                        "role" : "..select from Union..",
                        "org" : {
                            "href" : "..URI..",
                            "sourcedId" : "..String..",
                            "type" : "org"
                        },
                        "userProfile" : "..URI..",
                        "beginDate" : "..String(Date)..",
                        "endDate" : "..String(Date).."
                    },
                    {...},
                    {...}
                ],
                "userProfiles" : [
                    {
                        "profileId" : "..URI..",
                        "profileType" : "..NormalizedString..",
                        "vendorId" : "..NormalizedString..",
                        "applicationId" : "..NormalizedString..",
                        "description" : "..String..",
                        "credentials" : [
                            {
                                "type" : "..String..",
                                "username" : "..NormalizedString..",
                                "password" : "..String..",
                                "..permitted extension point.." : "..user defined value.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "primaryOrg" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "identifier" : "..String..",
                "email" : "..NormalizedString..",
                "sms" : "..NormalizedString..",
                "phone" : "..NormalizedString..",
                "agents" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "user"
                    },
                    {...},
                    {...}
                ],
                "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "password" : "..String..",
                "resources" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "resource"
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.77 "getTerm" Request Payload

There is no payload for this request.

6.78 "getTerm" Response Payloads

6.78.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.78.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getTerm" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.39b.

Code 6.78.1 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getTerm" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.78.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.78.2 - Tabular representation of the JSON payload for "200" response messages for a "getTerm" operation.
Property Name Multiplicity JSON Data-type Description
    academicSession [1..1] Object The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.39c.

Code 6.78.2 - JSON payload example for "200" response messages for a "getTerm" operation.
    {
        "academicSession" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "startDate" : "..String(Date)..",
            "endDate" : "..String(Date)..",
            "type" : "..select from Union..",
            "parent" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "children" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                {...},
                {...}
            ],
            "schoolYear" : "..NormalizedString.."
        }
    }
                        

6.79 "getTermsForSchool" Request Payload

There is no payload for this request.

6.80 "getTermsForSchool" Response Payloads

6.80.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.80.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTermsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.40b.

Code 6.80.1 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getTermsForSchool" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.80.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.80.2 - Tabular representation of the JSON payload for "200" response messages for a "getTermsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    academicSessions [0..*] Array [ Object ] The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title/label for the academic session.
            startDate [1..1] String (Format: date) The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            endDate [1..1] String (Format: date) The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.
            type [1..1] Union(SessionTypeEnumExt) The type of academic session. This is based upon an enumerated vocabulary.
            parent [0..1] Object The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            children [0..*] Array [ Object ] The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            schoolYear [1..1] String The school year for the academic session. This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.40c.

Code 6.80.2 - JSON payload example for "200" response messages for a "getTermsForSchool" operation.
    {
        "academicSessions" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "startDate" : "..String(Date)..",
                "endDate" : "..String(Date)..",
                "type" : "..select from Union..",
                "parent" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "children" : [
                    {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "academicSession"
                    },
                    {...},
                    {...}
                ],
                "schoolYear" : "..NormalizedString.."
            },
            {...},
            {...}
        ]
    }
                        

6.81 "getUser" Request Payload

There is no payload for this request.

6.82 "getUser" Response Payloads

6.82.1 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 422, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.82.1 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getUser" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.41b.

Code 6.82.1 - JSON payload example for "default, 400, 401, 403, 404, 429, 422, 500" response messages for a "getUser" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_CodeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"forbidden"|"server_busy"|"unknownobject"|"internal_server_error"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.82.2 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.82.2 - Tabular representation of the JSON payload for "200" response messages for a "getUser" operation.
Property Name Multiplicity JSON Data-type Description
    user [1..1] Object The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            userMasterIdentifier [0..1] String The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.
            username [0..1] String The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.
            userIds [0..*] Array [ Object ] The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type [1..1] String The type of identifier. This is no predefined vocabuary.
                    identifier [1..1] String The user identifier.
            enabledUser [1..1] Enumeration This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
            givenName [1..1] String The given name. Also, known as the first name.
            familyName [1..1] String The family name. Also, known as the last name.
            middleName [0..1] String The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.
            preferredFirstName [0..1] String The user's preferred first name. This attribute was added in version 1.2.
            preferredMiddleName [0..1] String The user's preferred middle name(s). This attribute was added in version 1.2.
            preferredLastName [0..1] String The user's preferred last name. This attribute was added in version 1.2.
            pronouns [0..1] String The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.
            roles [1..*] Array [ Object ] The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    roleType [1..1] Enumeration Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    role [1..1] Union(RoleEnumExt) The role of the user in the org. The permitted values are from an enumerated list.
                    org [1..1] Object The link to the associated org i.e. the 'sourcedId' for the org.
                            href [1..1] String (Format: uri) The URI for the type of object being referenced.
                            sourcedId [1..1] String The globally unique identifier of the object being referenced.
                            type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
                    userProfile [0..1] String (Format: uri) The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.
                    beginDate [0..1] String (Format: date) The start date on which the role becomes active (inclusive).
                    endDate [0..1] String (Format: date) The end date on which the role becomes inactive (exclusive).
            userProfiles [0..*] Array [ Object ] The set of system/app/tool profiles for the user.
                    profileId [1..1] String (Format: uri) The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.
                    profileType [1..1] String The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.
                    vendorId [1..1] String The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.
                    applicationId [0..1] String Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.
                    description [0..1] String A human readable description of the use of the profile. This should not contain any security information for access to the account.
                    credentials [0..*] Array [ Object ] The set of credentials that are available for access to this profile.
                            type [1..1] String The type of credentials for the profile. This should be indicative of when this specific credential should be used.
                            username [1..1] String The username.
                            password [0..1] String The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.
                            extensions [0..*] Set of Proprietary Properties The set of proprietary extensions to enable other important credential information to be supplied. This information will only be relevant in the context of the corresponding system/app/tool. The form of this information is dependent on the type of binding being used.
            primaryOrg [0..1] Object It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            identifier [0..1] String An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.
            email [0..1] String The email address for the user.
            sms [0..1] String The SMS number for the user.
            phone [0..1] String The phone number for the user.
            agents [0..*] Array [ Object ] The links to other people i.e. User 'sourcedIds'.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            grades [0..*] Array [ String ] Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.
            password [0..1] String A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.
            resources [0..*] Array [ Object ] The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'resource'.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.41c.

Code 6.82.2 - JSON payload example for "200" response messages for a "getUser" operation.
    {
        "user" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "userMasterIdentifier" : "..NormalizedString..",
            "username" : "..NormalizedString..",
            "userIds" : [
                {
                    "type" : "..NormalizedString..",
                    "identifier" : "..String.."
                },
                {...},
                {...}
            ],
            "enabledUser" : "true"|"false",
            "givenName" : "..NormalizedString..",
            "familyName" : "..NormalizedString..",
            "middleName" : "..NormalizedString..",
            "preferredFirstName" : "..NormalizedString..",
            "preferredMiddleName" : "..NormalizedString..",
            "preferredLastName" : "..NormalizedString..",
            "pronouns" : "..NormalizedString..",
            "roles" : [
                {
                    "roleType" : "primary"|"secondary",
                    "role" : "..select from Union..",
                    "org" : {
                        "href" : "..URI..",
                        "sourcedId" : "..String..",
                        "type" : "org"
                    },
                    "userProfile" : "..URI..",
                    "beginDate" : "..String(Date)..",
                    "endDate" : "..String(Date).."
                },
                {...},
                {...}
            ],
            "userProfiles" : [
                {
                    "profileId" : "..URI..",
                    "profileType" : "..NormalizedString..",
                    "vendorId" : "..NormalizedString..",
                    "applicationId" : "..NormalizedString..",
                    "description" : "..String..",
                    "credentials" : [
                        {
                            "type" : "..String..",
                            "username" : "..NormalizedString..",
                            "password" : "..String..",
                            "..permitted extension point.." : "..user defined value.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "primaryOrg" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "identifier" : "..String..",
            "email" : "..NormalizedString..",
            "sms" : "..NormalizedString..",
            "phone" : "..NormalizedString..",
            "agents" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                {...},
                {...}
            ],
            "grades" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "password" : "..String..",
            "resources" : [
                {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "resource"
                },
                {...},
                {...}
            ]
        }
    }
                        

toc | top

7. OpenAPI Description

This Section is NORMATIVE.

7.1 General Information

The set of General Information defined in the OpenAPI description, and realised in both the JSON and YAML instances, are listed in Tables 7.1a (version 2) and 7.1b (version 3). The syntax and semantics for this information are described in Appendix A3.1.

Table 7.1a - The Set of General Information Defined in the OpenAPI(2) Description.
Swagger Version 2.0
Specification Title OneRoster
Specification Version 1.2
Description The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
Terms of Service Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.
Contact Vice President of Operations, 1EdTech (https://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Host www.imsglobal.org
Base Path /ims/oneroster/rostering/v1p2
Schemes http, https
Consumes application/json
Produces application/json

Table 7.1b - The Set of General Information Defined in the OpenAPI(3) Description.
OpenAPI Version 3.0.0 or 3.1.0
Specification Title OneRoster
Specification Version 1.2
Description The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
Terms of Service https://www.1edtech.org/license.html
Contact Vice President of Operations, 1EdTech (http://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Servers https://{hostName=www.imsglobal.org}{basePath=/ims/oneroster/rostering/v1p2}
www.imsglobal.org/ims/oneroster/rostering/v1p2

7.2 Tags Information

The set of Tags defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 7.2. The syntax and semantics for these Tags are described in Appendix A3.2.

Table 7.2 - The Set of Tags Defined in the OpenAPI Description.
Tag Name Description
AcademicSessionsManagement This enables the management of academic sessions i.e. periods of academic activity. The set of endpoints assigned to this tag are:
ClassesManagement This enables the management of Classes i.e. scheduled learning of courses. The set of endpoints assigned to this tag are:
CoursesManagement This enables the management of Courses i.e. programme of study. The set of endpoints assigned to this tag are:
DemographicsManagement This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same. The set of endpoints assigned to this tag are:
EnrollmentsManagement This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools. The set of endpoints assigned to this tag are:
GradingPeriodsManagement This enables the management of grading periods i.e. specific academic sessions. The set of endpoints assigned to this tag are:
OrgsManagement This enables the management of orgs i.e. an organization involved in the learning in some form or other. The set of endpoints assigned to this tag are:
SchoolsManagement This enables the management of information about schools. A school is a type of 'org'. The set of endpoints assigned to this tag are:
StudentsManagement This enables the management of information about students (a student is a type of 'user'). The set of endpoints assigned to this tag are:
TeachersManagement This enables the management of information about teachers (a teacher is a type of 'user'). The set of endpoints assigned to this tag are:
TermsManagement This enables the management of information about terms (a term is a type of 'academicSession'). The set of endpoints assigned to this tag are:
UsersManagement This enables the management of information about users (including students and teachers). The set of endpoints assigned to this tag are:

7.3 Security Information

The OAuth 2 Client Credentials security mode is used for this service. Table 7.3.1 describes the OpenAPI information for the configuration of the OAuth 2.0 Client Credentials. The syntax and semantics for this information are described in Appendix A3.3.

Table 7.3.1 - The Set of OAuth 2.0 Client Credentials Security Information Defined in the OpenAPI Description.
Security Label OAuth2CC
Type oauth2
Description OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
Flow OAS2 - application
OAS3 - clientCredentials
Token URL https://www.imsglobal.org
Scopes
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
Global Scope OAuth2CC : [ https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly ]

7.4 Paths Information

The following Tables describe the OpenAPI information for each of the Paths. The syntax and semantics for these Paths are described in Appendix A3.4.

7.4.1 "/academicSessions" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/academicSessions" Path.

Table 7.4.1a - The Path Details for the 'GET' verb with the '/academicSessions' Path.
HTTP Verb: GET
Operation ID getAllAcademicSessions
Summary The REST "read" request message for the "getAllAcademicSessions()" API call.
Tags AcademicSessionsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of academic sessions i.e. all academic sessions.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 AcademicSessionSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.2 "/academicSessions/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/academicSessions/{sourcedId}" Path.

Table 7.4.2a - The Path Details for the 'GET' verb with the '/academicSessions/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getAcademicSession
Summary The REST "read" request message for the "getAcademicSession()" API call.
Tags AcademicSessionsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this academic session.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleAcademicSessionDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.3 "/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes" Path.

Table 7.4.3a - The Path Details for the 'GET' verb with the '/classes' Path.
HTTP Verb: GET
Operation ID getAllClasses
Summary The REST "read" request message for the "getAllClasses()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of classes i.e. all classes.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.4 "/classes/{classSourcedId}/students" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/students" Path.

Table 7.4.4a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/students' Path.
HTTP Verb: GET
Operation ID getStudentsForClass
Summary The REST "read" request message for the "getStudentsForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.5 "/classes/{classSourcedId}/teachers" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/teachers" Path.

Table 7.4.5a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/teachers' Path.
HTTP Verb: GET
Operation ID getTeachersForClass
Summary The REST "read" request message for the "getTeachersForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.6 "/classes/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{sourcedId}" Path.

Table 7.4.6a - The Path Details for the 'GET' verb with the '/classes/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getClass
Summary The REST "read" request message for the "getClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this class.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleClassDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.7 "/courses" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/courses" Path.

Table 7.4.7a - The Path Details for the 'GET' verb with the '/courses' Path.
HTTP Verb: GET
Operation ID getAllCourses
Summary The REST "read" request message for the "getAllCourses()" API call.
Tags CoursesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of courses i.e. all courses.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 CourseSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.8 "/courses/{courseSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/courses/{courseSourcedId}/classes" Path.

Table 7.4.8a - The Path Details for the 'GET' verb with the '/courses/{courseSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForCourse
Summary The REST "read" request message for the "getClassesForCourse()" API call.
Tags CoursesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of classes related to a specific course. If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {courseSourcedId} - the unique identifier, GUID, for the specific course.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.9 "/courses/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/courses/{sourcedId}" Path.

Table 7.4.9a - The Path Details for the 'GET' verb with the '/courses/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getCourse
Summary The REST "read" request message for the "getCourse()" API call.
Tags CoursesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific course. If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this course.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleCourseDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.10 "/demographics" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/demographics" Path.

Table 7.4.10a - The Path Details for the 'GET' verb with the '/demographics' Path.
HTTP Verb: GET
Operation ID getAllDemographics
Summary The REST "read" request message for the "getAllDemographics()" API call.
Tags DemographicsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
Description To read, get, a collection of demographics i.e. all demographics.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 DemographicsSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.11 "/demographics/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/demographics/{sourcedId}" Path.

Table 7.4.11a - The Path Details for the 'GET' verb with the '/demographics/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getDemographics
Summary The REST "read" request message for the "getDemographics()" API call.
Tags DemographicsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
Description To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this user demographics.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleDemographicsDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.12 "/enrollments" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/enrollments" Path.

Table 7.4.12a - The Path Details for the 'GET' verb with the '/enrollments' Path.
HTTP Verb: GET
Operation ID getAllEnrollments
Summary The REST "read" request message for the "getAllEnrollments()" API call.
Tags EnrollmentsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of enrollments i.e. all enrollments.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 EnrollmentSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.13 "/enrollments/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/enrollments/{sourcedId}" Path.

Table 7.4.13a - The Path Details for the 'GET' verb with the '/enrollments/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getEnrollment
Summary The REST "read" request message for the "getEnrollment()" API call.
Tags EnrollmentsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this enrollment.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleEnrollmentDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.14 "/gradingPeriods" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/gradingPeriods" Path.

Table 7.4.14a - The Path Details for the 'GET' verb with the '/gradingPeriods' Path.
HTTP Verb: GET
Operation ID getAllGradingPeriods
Summary The REST "read" request message for the "getAllGradingPeriods()" API call.
Tags GradingPeriodsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of grading periods i.e. all academic sessions.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 AcademicSessionSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.15 "/gradingPeriods/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/gradingPeriods/{sourcedId}" Path.

Table 7.4.15a - The Path Details for the 'GET' verb with the '/gradingPeriods/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getGradingPeriod
Summary The REST "read" request message for the "getGradingPeriod()" API call.
Tags GradingPeriodsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this grading period.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleAcademicSessionDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.16 "/orgs" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/orgs" Path.

Table 7.4.16a - The Path Details for the 'GET' verb with the '/orgs' Path.
HTTP Verb: GET
Operation ID getAllOrgs
Summary The REST "read" request message for the "getAllOrgs()" API call.
Tags OrgsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of orgs i.e. all orgs.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 OrgSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.17 "/orgs/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/orgs/{sourcedId}" Path.

Table 7.4.17a - The Path Details for the 'GET' verb with the '/orgs/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getOrg
Summary The REST "read" request message for the "getOrg()" API call.
Tags OrgsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this org.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleOrgDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.18 "/schools" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools" Path.

Table 7.4.18a - The Path Details for the 'GET' verb with the '/schools' Path.
HTTP Verb: GET
Operation ID getAllSchools
Summary The REST "read" request message for the "getAllSchools()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of schools i.e. all schools.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 OrgSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.19 "/schools/{schoolSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/classes" Path.

Table 7.4.19a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForSchool
Summary The REST "read" request message for the "getClassesForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.20 "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" Path.

Table 7.4.20a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments' Path.
HTTP Verb: GET
Operation ID getEnrollmentsForClassInSchool
Summary The REST "read" request message for the "getEnrollmentsForClassInSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the school.
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 EnrollmentSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.21 "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" Path.

Table 7.4.21a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/classes/{classSourcedId}/students' Path.
HTTP Verb: GET
Operation ID getStudentsForClassInSchool
Summary The REST "read" request message for the "getStudentsForClassInSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.22 "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" Path.

Table 7.4.22a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers' Path.
HTTP Verb: GET
Operation ID getTeachersForClassInSchool
Summary The REST "read" request message for the "getTeachersForClassInSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.23 "/schools/{schoolSourcedId}/courses" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/courses" Path.

Table 7.4.23a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/courses' Path.
HTTP Verb: GET
Operation ID getCoursesForSchool
Summary The REST "read" request message for the "getCoursesForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 CourseSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.24 "/schools/{schoolSourcedId}/enrollments" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/enrollments" Path.

Table 7.4.24a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/enrollments' Path.
HTTP Verb: GET
Operation ID getEnrollmentsForSchool
Summary The REST "read" request message for the "getEnrollmentsForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 EnrollmentSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.25 "/schools/{schoolSourcedId}/students" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/students" Path.

Table 7.4.25a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/students' Path.
HTTP Verb: GET
Operation ID getStudentsForSchool
Summary The REST "read" request message for the "getStudentsForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.26 "/schools/{schoolSourcedId}/teachers" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/teachers" Path.

Table 7.4.26a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/teachers' Path.
HTTP Verb: GET
Operation ID getTeachersForSchool
Summary The REST "read" request message for the "getTeachersForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.27 "/schools/{schoolSourcedId}/terms" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/terms" Path.

Table 7.4.27a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/terms' Path.
HTTP Verb: GET
Operation ID getTermsForSchool
Summary The REST "read" request message for the "getTermsForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the specific school.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 AcademicSessionSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.28 "/schools/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{sourcedId}" Path.

Table 7.4.28a - The Path Details for the 'GET' verb with the '/schools/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getSchool
Summary The REST "read" request message for the "getSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this school.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleOrgDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.29 "/students" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/students" Path.

Table 7.4.29a - The Path Details for the 'GET' verb with the '/students' Path.
HTTP Verb: GET
Operation ID getAllStudents
Summary The REST "read" request message for the "getAllStudents()" API call.
Tags StudentsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of students i.e. all students.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.30 "/students/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/students/{sourcedId}" Path.

Table 7.4.30a - The Path Details for the 'GET' verb with the '/students/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getStudent
Summary The REST "read" request message for the "getStudent()" API call.
Tags StudentsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this student.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleUserDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.31 "/students/{studentSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/students/{studentSourcedId}/classes" Path.

Table 7.4.31a - The Path Details for the 'GET' verb with the '/students/{studentSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForStudent
Summary The REST "read" request message for the "getClassesForStudent()" API call.
Tags StudentsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {studentSourcedId} - the unique identifier, GUID, for the specific student.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.32 "/teachers" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/teachers" Path.

Table 7.4.32a - The Path Details for the 'GET' verb with the '/teachers' Path.
HTTP Verb: GET
Operation ID getAllTeachers
Summary The REST "read" request message for the "getAllTeachers()" API call.
Tags TeachersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of teachers i.e. all teachers.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.33 "/teachers/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/teachers/{sourcedId}" Path.

Table 7.4.33a - The Path Details for the 'GET' verb with the '/teachers/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getTeacher
Summary The REST "read" request message for the "getTeacher()" API call.
Tags TeachersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this teacher.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleUserDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.34 "/teachers/{teacherSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/teachers/{teacherSourcedId}/classes" Path.

Table 7.4.34a - The Path Details for the 'GET' verb with the '/teachers/{teacherSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForTeacher
Summary The REST "read" request message for the "getClassesForTeacher()" API call.
Tags TeachersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {teacherSourcedId} - the unique identifier, GUID, for the specific teacher.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.35 "/terms" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/terms" Path.

Table 7.4.35a - The Path Details for the 'GET' verb with the '/terms' Path.
HTTP Verb: GET
Operation ID getAllTerms
Summary The REST "read" request message for the "getAllTerms()" API call.
Tags TermsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of terms i.e. all terms.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 AcademicSessionSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.36 "/terms/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/terms/{sourcedId}" Path.

Table 7.4.36a - The Path Details for the 'GET' verb with the '/terms/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getTerm
Summary The REST "read" request message for the "getTerm()" API call.
Tags TermsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this term.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleAcademicSessionDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.37 "/terms/{termSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/terms/{termSourcedId}/classes" Path.

Table 7.4.37a - The Path Details for the 'GET' verb with the '/terms/{termSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForTerm
Summary The REST "read" request message for the "getClassesForTerm()" API call.
Tags TermsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {termSourcedId} - the unique identifier, GUID, for the specific term.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.38 "/terms/{termSourcedId}/gradingPeriods" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/terms/{termSourcedId}/gradingPeriods" Path.

Table 7.4.38a - The Path Details for the 'GET' verb with the '/terms/{termSourcedId}/gradingPeriods' Path.
HTTP Verb: GET
Operation ID getGradingPeriodsForTerm
Summary The REST "read" request message for the "getGradingPeriodsForTerm()" API call.
Tags TermsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {termSourcedId} - the unique identifier, GUID, for the specific term.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 AcademicSessionSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.39 "/users" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/users" Path.

Table 7.4.39a - The Path Details for the 'GET' verb with the '/users' Path.
HTTP Verb: GET
Operation ID getAllUsers
Summary The REST "read" request message for the "getAllUsers()" API call.
Tags UsersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a collection of users i.e. all users (including students and teachers).
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 UserSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.40 "/users/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/users/{sourcedId}" Path.

Table 7.4.40a - The Path Details for the 'GET' verb with the '/users/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getUser
Summary The REST "read" request message for the "getUser()" API call.
Tags UsersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
Description To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this user.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 SingleUserDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.4.41 "/users/{userSourcedId}/classes" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/users/{userSourcedId}/classes" Path.

Table 7.4.41a - The Path Details for the 'GET' verb with the '/users/{userSourcedId}/classes' Path.
HTTP Verb: GET
Operation ID getClassesForUser
Summary The REST "read" request message for the "getClassesForUser()" API call.
Tags UsersManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
Description To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for the specific user.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
default imsx_StatusInfoDType This is the default error response when no other appropriate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
200 ClassSetDType The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
500 imsx_StatusInfoDType This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.

7.5 Definitions Information

The following Tables describe the OpenAPI information for each of the JSON Schema Definitions. The syntax and semantics for these JSON Schema Definition descriptions are described in Appendix A3.5.

7.5.1 "AcadSessionGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type is given in Table 7.5.1.

Table 7.5.1 - OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the AcadSessionGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "AcadSessionGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "academicSession" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AcadSessionGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "academicSession" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.2 "AcademicSessionDType" Definition

The OpenAPI JSON Schema description for the "AcademicSessionDType" Complex Type is given in Table 7.5.2.

Table 7.5.2 - OpenAPI JSON Schema description for the "AcademicSessionDType" Complex Type.
Annotations The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa.
Diagram JSON Schema diagram of the AcademicSession object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! title{1..1} ! startDate{1..1} ! endDate{1..1} ! type{1..1} ! parent{0..1} ! children{0..*} ! schoolYear{1..1}
Source (OAS2)
    "AcademicSessionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "startDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "type" : {
                "description" : "...",
                "type" : "string"
            },
            "parent" : {
                "$ref" : "#/definitions/AcadSessionGUIDRefDType"
            },
            "children" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                }
            },
            "schoolYear" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "title","startDate","endDate","type","schoolYear" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AcademicSessionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "startDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "type" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "parent" : {
                "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
            },
            "children" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                }
            },
            "schoolYear" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "title","startDate","endDate","type","schoolYear" ],
        "additionalProperties" : false
    },
                        

7.5.3 "AcademicSessionSetDType" Definition

The OpenAPI JSON Schema description for the "AcademicSessionSetDType" Complex Type is given in Table 7.5.3.

Table 7.5.3 - OpenAPI JSON Schema description for the "AcademicSessionSetDType" Complex Type.
Annotations This is the container for a collection of academicSessions instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the AcademicSessionSet object.
Model academicSessions{0..*}
Source (OAS2)
    "AcademicSessionSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "academicSessions" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AcademicSessionDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AcademicSessionSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "academicSessions" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AcademicSessionDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.4 "ClassDType" Definition

The OpenAPI JSON Schema description for the "ClassDType" Complex Type is given in Table 7.5.4.

Table 7.5.4 - OpenAPI JSON Schema description for the "ClassDType" Complex Type.
Annotations A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.
Diagram JSON Schema diagram of the Class object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! title{1..1} ! classCode{0..1} ! classType{0..1} ! location{0..1} ! grades{0..*} ! subjects{0..*} ! course{1..1} ! school{1..1} ! terms{1..*} ! subjectCodes{0..*} ! periods{0..*} ! resources{0..*}
Source (OAS2)
    "ClassDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "classCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "classType" : {
                "description" : "...",
                "type" : "string"
            },
            "location" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "subjects" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "course" : {
                "$ref" : "#/definitions/CourseGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "terms" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                }
            },
            "subjectCodes" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "periods" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "title","course","school","terms" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ClassDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "classCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "classType" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "homeroom","scheduled" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "location" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "subjects" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "course" : {
                "$ref" : "#/components/schemas/CourseGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "terms" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                }
            },
            "subjectCodes" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "periods" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "title","course","school","terms" ],
        "additionalProperties" : false
    },
                        

7.5.5 "ClassGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type is given in Table 7.5.5.

Table 7.5.5 - OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the ClassGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "ClassGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "class" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ClassGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "class" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.6 "ClassSetDType" Definition

The OpenAPI JSON Schema description for the "ClassSetDType" Complex Type is given in Table 7.5.6.

Table 7.5.6 - OpenAPI JSON Schema description for the "ClassSetDType" Complex Type.
Annotations This is the container for a collection of classes instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the ClassSet object.
Model classes{0..*}
Source (OAS2)
    "ClassSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "classes" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ClassDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ClassSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "classes" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ClassDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.7 "CourseDType" Definition

The OpenAPI JSON Schema description for the "CourseDType" Complex Type is given in Table 7.5.7.

Table 7.5.7 - OpenAPI JSON Schema description for the "CourseDType" Complex Type.
Annotations The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.
Diagram JSON Schema diagram of the Course object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! title{1..1} ! schoolYear{0..1} ! courseCode{1..1} ! grades{0..*} ! subjects{0..*} ! org{0..1} ! subjectCodes{0..*} ! resources{0..*}
Source (OAS2)
    "CourseDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "schoolYear" : {
                "$ref" : "#/definitions/AcadSessionGUIDRefDType"
            },
            "courseCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "subjects" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "org" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "subjectCodes" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "title","courseCode" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CourseDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "schoolYear" : {
                "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
            },
            "courseCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "subjects" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "org" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "subjectCodes" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "title","courseCode" ],
        "additionalProperties" : false
    },
                        

7.5.8 "CourseGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type is given in Table 7.5.8.

Table 7.5.8 - OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the CourseGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "CourseGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "course" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CourseGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "course" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.9 "CourseSetDType" Definition

The OpenAPI JSON Schema description for the "CourseSetDType" Complex Type is given in Table 7.5.9.

Table 7.5.9 - OpenAPI JSON Schema description for the "CourseSetDType" Complex Type.
Annotations This is the container for a collection of courses instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the CourseSet object.
Model courses{0..*}
Source (OAS2)
    "CourseSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "courses" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/CourseDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CourseSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "courses" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/CourseDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.10 "CredentialDType" Definition

The OpenAPI JSON Schema description for the "CredentialDType" Complex Type is given in Table 7.5.10.

Table 7.5.10 - OpenAPI JSON Schema description for the "CredentialDType" Complex Type.
Annotations The container for a single set of credentials for an account.
Diagram JSON Schema diagram of the Credential object.
Model type{1..1} ! username{1..1} ! password{0..1} ! { Namespace Extension }
Source (OAS2)
    "CredentialDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "username" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "password" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "type","username" ],
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "CredentialDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "username" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "password" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "type","username" ],
        "additionalProperties" : true
    },
                        

7.5.11 "DemographicsDType" Definition

The OpenAPI JSON Schema description for the "DemographicsDType" Complex Type is given in Table 7.5.11.

Table 7.5.11 - OpenAPI JSON Schema description for the "DemographicsDType" Complex Type.
Annotations Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.
Diagram JSON Schema diagram of the Demographics object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! birthDate{0..1} ! sex{0..1} ! americanIndianOrAlaskaNative{0..1} ! asian{0..1} ! blackOrAfricanAmerican{0..1} ! nativeHawaiianOrOtherPacificIslander{0..1} ! white{0..1} ! demographicRaceTwoOrMoreRaces{0..1} ! hispanicOrLatinoEthnicity{0..1} ! countryOfBirthCode{0..1} ! stateOfBirthAbbreviation{0..1} ! cityOfBirth{0..1} ! publicSchoolResidenceStatus{0..1}
Source (OAS2)
    "DemographicsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "birthDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "sex" : {
                "description" : "...",
                "type" : "string"
            },
            "americanIndianOrAlaskaNative" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "asian" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "blackOrAfricanAmerican" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "nativeHawaiianOrOtherPacificIslander" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "white" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "demographicRaceTwoOrMoreRaces" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "hispanicOrLatinoEthnicity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "countryOfBirthCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "stateOfBirthAbbreviation" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "cityOfBirth" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "publicSchoolResidenceStatus" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "DemographicsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "birthDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "sex" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "male","female","unspecified","other" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "americanIndianOrAlaskaNative" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "asian" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "blackOrAfricanAmerican" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "nativeHawaiianOrOtherPacificIslander" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "white" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "demographicRaceTwoOrMoreRaces" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "hispanicOrLatinoEthnicity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "countryOfBirthCode" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "stateOfBirthAbbreviation" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "cityOfBirth" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "publicSchoolResidenceStatus" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "additionalProperties" : false
    },
                        

7.5.12 "DemographicsSetDType" Definition

The OpenAPI JSON Schema description for the "DemographicsSetDType" Complex Type is given in Table 7.5.12.

Table 7.5.12 - OpenAPI JSON Schema description for the "DemographicsSetDType" Complex Type.
Annotations This is the container for a collection of demographics instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the DemographicsSet object.
Model demographics{0..*}
Source (OAS2)
    "DemographicsSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "demographics" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/DemographicsDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "DemographicsSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "demographics" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/DemographicsDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.13 "EnrollmentDType" Definition

The OpenAPI JSON Schema description for the "EnrollmentDType" Complex Type is given in Table 7.5.13.

Table 7.5.13 - OpenAPI JSON Schema description for the "EnrollmentDType" Complex Type.
Annotations An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.
Diagram JSON Schema diagram of the Enrollment object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! user{1..1} ! class{1..1} ! school{1..1} ! role{1..1} ! primary{0..1} ! beginDate{0..1} ! endDate{0..1}
Source (OAS2)
    "EnrollmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "user" : {
                "$ref" : "#/definitions/UserGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/definitions/ClassGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "role" : {
                "description" : "...",
                "type" : "string"
            },
            "primary" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "beginDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
        },
        "required" : [ "user","class","school","role" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "EnrollmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "user" : {
                "$ref" : "#/components/schemas/UserGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/components/schemas/ClassGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "role" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "administrator","proctor","student","teacher" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "primary" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "beginDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
        },
        "required" : [ "user","class","school","role" ],
        "additionalProperties" : false
    },
                        

7.5.14 "EnrollmentSetDType" Definition

The OpenAPI JSON Schema description for the "EnrollmentSetDType" Complex Type is given in Table 7.5.14.

Table 7.5.14 - OpenAPI JSON Schema description for the "EnrollmentSetDType" Complex Type.
Annotations This is the container for a collection of enrollment instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the EnrollmentSet object.
Model enrollments{0..*}
Source (OAS2)
    "EnrollmentSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "enrollments" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/EnrollmentDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "EnrollmentSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "enrollments" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/EnrollmentDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.15 "MetadataDType" Definition

The OpenAPI JSON Schema description for the "MetadataDType" Complex Type is given in Table 7.5.15.

Table 7.5.15 - OpenAPI JSON Schema description for the "MetadataDType" Complex Type.
Annotations The container for the proprietary extensions.
Diagram JSON Schema diagram of the Metadata object.
Model Namespace-based Extension
Source (OAS2)
    "MetadataDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
        },
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "MetadataDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
        },
        "additionalProperties" : true
    },
                        

7.5.16 "OrgDType" Definition

The OpenAPI JSON Schema description for the "OrgDType" Complex Type is given in Table 7.5.16.

Table 7.5.16 - OpenAPI JSON Schema description for the "OrgDType" Complex Type.
Annotations ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.
Diagram JSON Schema diagram of the Org object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! name{1..1} ! type{1..1} ! identifier{1..1} ! parent{0..1} ! children{0..*}
Source (OAS2)
    "OrgDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "name" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "parent" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "children" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                }
            },
        },
        "required" : [ "name","type","identifier" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "OrgDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "name" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "department","district","local","national","school","state" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "parent" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "children" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/OrgGUIDRefDType"
                }
            },
        },
        "required" : [ "name","type","identifier" ],
        "additionalProperties" : false
    },
                        

7.5.17 "OrgGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type is given in Table 7.5.17.

Table 7.5.17 - OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the OrgGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "OrgGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "org" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "OrgGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "org" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.18 "OrgSetDType" Definition

The OpenAPI JSON Schema description for the "OrgSetDType" Complex Type is given in Table 7.5.18.

Table 7.5.18 - OpenAPI JSON Schema description for the "OrgSetDType" Complex Type.
Annotations This is the container for a collection of org instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the OrgSet object.
Model orgs{0..*}
Source (OAS2)
    "OrgSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "orgs" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/OrgDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "OrgSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "orgs" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/OrgDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.19 "ResourceGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "ResourceGUIDRefDType" Complex Type is given in Table 7.5.19.

Table 7.5.19 - OpenAPI JSON Schema description for the "ResourceGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the ResourceGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "ResourceGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "resource" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ResourceGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "resource" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.20 "RoleDType" Definition

The OpenAPI JSON Schema description for the "RoleDType" Complex Type is given in Table 7.5.20.

Table 7.5.20 - OpenAPI JSON Schema description for the "RoleDType" Complex Type.
Annotations The container for one mapping between a role and an org for the user.
Diagram JSON Schema diagram of the Role object.
Model roleType{1..1} ! role{1..1} ! org{1..1} ! userProfile{0..1} ! beginDate{0..1} ! endDate{0..1}
Source (OAS2)
    "RoleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "roleType" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "primary","secondary" ]
            },
            "role" : {
                "description" : "...",
                "type" : "string"
            },
            "org" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "userProfile" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "beginDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
        },
        "required" : [ "roleType","role","org" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "RoleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "roleType" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "primary","secondary" ]
            },
            "role" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        }
                ]
            },
            "org" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "userProfile" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "beginDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "endDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
        },
        "required" : [ "roleType","role","org" ],
        "additionalProperties" : false
    },
                        

7.5.21 "SingleAcademicSessionDType" Definition

The OpenAPI JSON Schema description for the "SingleAcademicSessionDType" Complex Type is given in Table 7.5.21.

Table 7.5.21 - OpenAPI JSON Schema description for the "SingleAcademicSessionDType" Complex Type.
Annotations This is the container for a single academicSession instance for a message payload.
Diagram JSON Schema diagram of the SingleAcademicSession object.
Model academicSession{1..1}
Source (OAS2)
    "SingleAcademicSessionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "academicSession" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            },
        },
        "required" : [ "academicSession" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleAcademicSessionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "academicSession" : {
                "$ref" : "#/components/schemas/AcademicSessionDType"
            },
        },
        "required" : [ "academicSession" ],
        "additionalProperties" : false
    },
                        

7.5.22 "SingleClassDType" Definition

The OpenAPI JSON Schema description for the "SingleClassDType" Complex Type is given in Table 7.5.22.

Table 7.5.22 - OpenAPI JSON Schema description for the "SingleClassDType" Complex Type.
Annotations This is the container for a single class instance for a message payload.
Diagram JSON Schema diagram of the SingleClass object.
Model class{1..1}
Source (OAS2)
    "SingleClassDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "class" : {
                "$ref" : "#/definitions/ClassDType"
            },
        },
        "required" : [ "class" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleClassDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "class" : {
                "$ref" : "#/components/schemas/ClassDType"
            },
        },
        "required" : [ "class" ],
        "additionalProperties" : false
    },
                        

7.5.23 "SingleCourseDType" Definition

The OpenAPI JSON Schema description for the "SingleCourseDType" Complex Type is given in Table 7.5.23.

Table 7.5.23 - OpenAPI JSON Schema description for the "SingleCourseDType" Complex Type.
Annotations This is the container for a single course instance for a message payload.
Diagram JSON Schema diagram of the SingleCourse object.
Model course{1..1}
Source (OAS2)
    "SingleCourseDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "course" : {
                "$ref" : "#/definitions/CourseDType"
            },
        },
        "required" : [ "course" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleCourseDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "course" : {
                "$ref" : "#/components/schemas/CourseDType"
            },
        },
        "required" : [ "course" ],
        "additionalProperties" : false
    },
                        

7.5.24 "SingleDemographicsDType" Definition

The OpenAPI JSON Schema description for the "SingleDemographicsDType" Complex Type is given in Table 7.5.24.

Table 7.5.24 - OpenAPI JSON Schema description for the "SingleDemographicsDType" Complex Type.
Annotations This is the container for a single demographics instance for a message payload.
Diagram JSON Schema diagram of the SingleDemographics object.
Model demographics{1..1}
Source (OAS2)
    "SingleDemographicsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "demographics" : {
                "$ref" : "#/definitions/DemographicsDType"
            },
        },
        "required" : [ "demographics" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleDemographicsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "demographics" : {
                "$ref" : "#/components/schemas/DemographicsDType"
            },
        },
        "required" : [ "demographics" ],
        "additionalProperties" : false
    },
                        

7.5.25 "SingleEnrollmentDType" Definition

The OpenAPI JSON Schema description for the "SingleEnrollmentDType" Complex Type is given in Table 7.5.25.

Table 7.5.25 - OpenAPI JSON Schema description for the "SingleEnrollmentDType" Complex Type.
Annotations This is the container for a single enrollment instance for a message payload.
Diagram JSON Schema diagram of the SingleEnrollment object.
Model enrollment{1..1}
Source (OAS2)
    "SingleEnrollmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "enrollment" : {
                "$ref" : "#/definitions/EnrollmentDType"
            },
        },
        "required" : [ "enrollment" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleEnrollmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "enrollment" : {
                "$ref" : "#/components/schemas/EnrollmentDType"
            },
        },
        "required" : [ "enrollment" ],
        "additionalProperties" : false
    },
                        

7.5.26 "SingleOrgDType" Definition

The OpenAPI JSON Schema description for the "SingleOrgDType" Complex Type is given in Table 7.5.26.

Table 7.5.26 - OpenAPI JSON Schema description for the "SingleOrgDType" Complex Type.
Annotations This is the container for a single org instance for a message payload.
Diagram JSON Schema diagram of the SingleOrg object.
Model org{1..1}
Source (OAS2)
    "SingleOrgDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "org" : {
                "$ref" : "#/definitions/OrgDType"
            },
        },
        "required" : [ "org" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleOrgDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "org" : {
                "$ref" : "#/components/schemas/OrgDType"
            },
        },
        "required" : [ "org" ],
        "additionalProperties" : false
    },
                        

7.5.27 "SingleUserDType" Definition

The OpenAPI JSON Schema description for the "SingleUserDType" Complex Type is given in Table 7.5.27.

Table 7.5.27 - OpenAPI JSON Schema description for the "SingleUserDType" Complex Type.
Annotations This is the container for a single user instance for a message payload.
Diagram JSON Schema diagram of the SingleUser object.
Model user{1..1}
Source (OAS2)
    "SingleUserDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "user" : {
                "$ref" : "#/definitions/UserDType"
            },
        },
        "required" : [ "user" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleUserDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "user" : {
                "$ref" : "#/components/schemas/UserDType"
            },
        },
        "required" : [ "user" ],
        "additionalProperties" : false
    },
                        

7.5.28 "UserDType" Definition

The OpenAPI JSON Schema description for the "UserDType" Complex Type is given in Table 7.5.28.

Table 7.5.28 - OpenAPI JSON Schema description for the "UserDType" Complex Type.
Annotations Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments.
Diagram JSON Schema diagram of the User object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! userMasterIdentifier{0..1} ! username{0..1} ! userIds{0..*} ! enabledUser{1..1} ! givenName{1..1} ! familyName{1..1} ! middleName{0..1} ! preferredFirstName{0..1} ! preferredMiddleName{0..1} ! preferredLastName{0..1} ! pronouns{0..1} ! roles{1..*} ! userProfiles{0..*} ! primaryOrg{0..1} ! identifier{0..1} ! email{0..1} ! sms{0..1} ! phone{0..1} ! agents{0..*} ! grades{0..*} ! password{0..1} ! resources{0..*}
Source (OAS2)
    "UserDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "userMasterIdentifier" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "username" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "userIds" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/UserIdDType"
                }
            },
            "enabledUser" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "givenName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "familyName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "middleName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredFirstName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredMiddleName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredLastName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "pronouns" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "roles" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/RoleDType"
                }
            },
            "userProfiles" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/UserProfileDType"
                }
            },
            "primaryOrg" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "email" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "sms" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "phone" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "agents" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/UserGUIDRefDType"
                }
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "password" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "enabledUser","givenName","familyName","roles" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "userMasterIdentifier" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "username" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "userIds" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/UserIdDType"
                }
            },
            "enabledUser" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "givenName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "familyName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "middleName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredFirstName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredMiddleName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "preferredLastName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "pronouns" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "roles" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/RoleDType"
                }
            },
            "userProfiles" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/UserProfileDType"
                }
            },
            "primaryOrg" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "email" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "sms" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "phone" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "agents" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/UserGUIDRefDType"
                }
            },
            "grades" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "password" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "resources" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                }
            },
        },
        "required" : [ "enabledUser","givenName","familyName","roles" ],
        "additionalProperties" : false
    },
                        

7.5.29 "UserGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type is given in Table 7.5.29.

Table 7.5.29 - OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the UserGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "UserGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "user" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "user" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.30 "UserIdDType" Definition

The OpenAPI JSON Schema description for the "UserIdDType" Complex Type is given in Table 7.5.30.

Table 7.5.30 - OpenAPI JSON Schema description for the "UserIdDType" Complex Type.
Annotations This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
Diagram JSON Schema diagram of the UserId object.
Model type{1..1}, identifier{1..1}
Source (OAS2)
    "UserIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "type","identifier" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "type","identifier" ],
        "additionalProperties" : false
    },
                        

7.5.31 "UserProfileDType" Definition

The OpenAPI JSON Schema description for the "UserProfileDType" Complex Type is given in Table 7.5.31.

Table 7.5.31 - OpenAPI JSON Schema description for the "UserProfileDType" Complex Type.
Annotations The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.
Diagram JSON Schema diagram of the UserProfile object.
Model profileId{1..1} ! profileType{1..1} ! vendorId{1..1} ! applicationId{0..1} ! description{0..1} ! credentials{0..*}
Source (OAS2)
    "UserProfileDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "profileId" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "profileType" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "vendorId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "applicationId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "credentials" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/CredentialDType"
                }
            },
        },
        "required" : [ "profileId","profileType","vendorId" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserProfileDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "profileId" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "profileType" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "vendorId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "applicationId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "credentials" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/CredentialDType"
                }
            },
        },
        "required" : [ "profileId","profileType","vendorId" ],
        "additionalProperties" : false
    },
                        

7.5.32 "UserSetDType" Definition

The OpenAPI JSON Schema description for the "UserSetDType" Complex Type is given in Table 7.5.32.

Table 7.5.32 - OpenAPI JSON Schema description for the "UserSetDType" Complex Type.
Annotations This is the container for a collection of user instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the UserSet object.
Model users{0..*}
Source (OAS2)
    "UserSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "users" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/UserDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "users" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/UserDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.33 "imsx_CodeMinorDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type is given in Table 7.5.33.

Table 7.5.33 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.
Annotations This is the container for the set of code minor status codes reported in the responses from the Service Provider.
Diagram JSON Schema diagram of the imsx_CodeMinor object.
Model imsx_codeMinorField{1..*}
Source (OAS2)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "additionalProperties" : false
    },
                        

7.5.34 "imsx_CodeMinorFieldDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type is given in Table 7.5.34.

Table 7.5.34 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.
Annotations This is the container for a single code minor status code.
Diagram JSON Schema diagram of the imsx_CodeMinorField object.
Model imsx_codeMinorFieldName{1..1}, imsx_codeMinorFieldValue{1..1}
Source (OAS2)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                            "server_busy","unknownobject","internal_server_error" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                            "server_busy","unknownobject","internal_server_error" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "additionalProperties" : false
    },
                        

7.5.35 "imsx_StatusInfoDType" Definition

The OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type is given in Table 7.5.35.

Table 7.5.35 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type.
Annotations This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
Diagram JSON Schema diagram of the imsx_StatusInfo object.
Model imsx_codeMajor{1..1}, imsx_severity{1..1}, imsx_description{0..1}, imsx_CodeMinor{0..1}
Source (OAS2)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "success","processing","failure","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "status","warning","error" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_CodeMinor" : {
                "$ref" : "#/definitions/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "success","processing","failure","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "status","warning","error" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_CodeMinor" : {
                "$ref" : "#/components/schemas/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "additionalProperties" : false
    },
                        

toc | top

8. Extending and Profiling the Binding

This Section is NON-NORMATIVE.

8.1. Extending the Binding

Proprietary extensions of the service are based upon three approaches:

It is NOT permitted to change the behavior of the current set of operations. Such changes MUST be supported by the creation of new operations.

8.1.1. Proprietary Operations

The definition of new operations should follow the same format as adopted herein. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system. A new version of the OpenAPI files should also be generated with the new operation definitions.

An example of creating such an extension is given in the accompanying Implementation Guide document [OR-IMPL-12].

8.1.2. Proprietary Scopes

It is permitted to create extra OAuth 2 scopes to provide more control over the availability of various endpoints.

An example of creating such an extension is given in the accompanying Implementation Guide document [OR-IMPL-12].

8.1.3. Proprietary Data Elements

It is recognized that implementers may wish to extend the specification. The preferred mechanism for doing this is for implementers to use an extension space within the OneRoster data model, and then set their parsers to read those extension attributes. Extensions are ONLY permitted using the 'metadata' attribute within the 'Base' class.

These extensions take the form of name/value pairs. The name is the label of the extension field, and the value is the value of the extension. For example, if wanting to show the extension of field "classification", with value "private" that was added/provided by "ims", the name/value pair is: "ims.classification" : "private".

It is RECOMMENDED that where extensions are used, whenever possible the name/value pairs are based upon vocabulary controlled files. This eliminates a proliferation of free text equivalencies from entering the data e.g. "Florida" vs "FL", vs "Florida, USA". In such cases either the attribute, or the value (or both) MUST be a URI that references the attribute and/or value from an appropriate vocabulary file. For example:

"http://www.nbrs.org" : "FL"

Within the OpenAPI files, uncontrolled data extensions are explicitly prohibited by the JSON Schema definition.

8.1.4. Proprietary Vocabulary Terms

In this version the ability to extend some of the enumerated vocabularies has been added: currently, ONLY the 'ClassTypeEnum', 'GenderEnum', 'OrgTypeEnum', 'RoleEnum' and 'SessionTypeEnum' vocabularies MAY be extended. Each proprietary term must start with the characters 'ext:'. An example is adding the two proprietary roles of 'ext:teachingasssistant' and 'ext:principal' to the 'RoleEnum' vocabulary.

8.2. Profiling the Binding

This Service can be profiled. In general, Profiling is used to:

Valid Profiles must be restrictive i.e. optional features can be removed or constraints increased but new features must not be added. A Profile of this service is made by annotating the UML supplied with the documentation for the specification.

It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of 1EdTech. However, no matter who is responsible for creating the profile artefacts (documents, OpenAPI files, XSDs, etc.), it is strongly recommended that the 1EdTech 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 contact the 1EdTech VP of Operations at: operations@1edtech.org.

toc | top

References

[I-BAT, 06] IMS Binding Auto-generation Toolkit (I-BAT), C.Smythe, IMS Global Learning Consortium Inc., July 2006.
[ISO 8601] ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000.
[OAS, 14] OpenAPI Specification (version 2), D.Miller, J.Harmon, J.Whitlock, K.Hahn, M.Gardiner, M.Ralphson, R.Dolin, R.Ratovsky and T.Tam, OpenAPI Initiative (Linux Foundation), September 2014, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md.
[OAS, 17] OpenAPI Specification (version 3), D.Miller, J.Whitlock, M.Gardiner, M.Ralphson, R.Ratovsky and U.Sarid, OpenAPI Initiative (Linux Foundation), July 2017, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md.
[OR-CERT-12] IMS OneRoster 1.2 Conformance and Certification Final Release 1.0, C.Smythe, J.McGhee and M.Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/cert.
[OR-GBK-SM-12] IMS OneRoster 1.2 Gradebook Services Final Release 1.0, C.Smythe, J.McGhee and M.Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/gradebook/info.
[OR-IMPL-12] IMS OneRoster 1.2 Implementation Guide Final Release 1.0, M.Richards, J.McGhee and C.Smythe, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/impl.
[OR-RES-SM-12] IMS OneRoster 1.2 Resources Services Final Release 1.0, C.Smythe, J.McGhee and M.Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/resource/info.
[OR-ROS-SM-12] IMS OneRoster 1.2 Rostering Service Model Final Release 1.0, C.Smythe, J.McGhee and M.Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/rostering/info.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, IETF (RFC 2119), March 1997, https://tools.ietf.org/html/rfc2119.
[RFC 2617] HTTP Authentication: Basic and Digest Access Authentication, J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen and L. Stewart, IETF (RFC 2167), 1999, https://tools.ietf.org/pdf/rfc2617.pdf.
[RFC 3066] Tags for the Identification of Languages, H.Alvestrand, IETF (RFC 3066), January 2001, https://www.ietf.org/rfc/rfc3066.txt.
[RFC 6749] The OAuth 2.0 Authorization Framework, D.Hardt, IETF (RFC 6749), 2012, https://tools.ietf.org/pdf/rfc6749.pdf.
[RFC 6750] The OAuth 2.0 Authorization Framework: Bearer Token Usage, D.Hardt, IETF (RFC 6750), 2012, https://tools.ietf.org/pdf/rfc6750.pdf.
[Security, 21] IMS Security Framework 1.1 Final Release, C.Smythe, N.Mills, C.Vervoort and M.Mckell, IMS Global Learning Consortium Inc., July 2021, https://www.imsglobal.org/spec/security/v1p1/.
[UNICODE, 16] UNICODE Collation Algorithm Version 9.0, M.Davis, K.Whistler and M.Scheer, Unicode Technical Standard #10, May 2016.

toc | top

Appendix A Model Binding Terms and Concepts

This Section is NOT NORMATIVE.

A1 REST Endpoint Description Explanations

A1.1 REST Endpoint Mapping Table Explanation

Table A1.1 provides the key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.

Table A1.1 The key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.
Category Definition and Usage
Service Call The name of the service call as defined in the associated Behavioral Model.
REST Endpoint The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification).
HTTP Verb The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.

toc | top

A1.2 Query Parameter Table Explanation

Table A1.2 provides the key to the descriptions of the query parameters that are permitted for an endpoint.

Table A1.2 The key to the descriptions of the data attribute/characteristic tables.
Category Definition and Usage
Parameter Name The name given to the query parameter being described.
Data Type This is the data-type of the parameter. The data-type can take many forms:
  • Enumeration - a list of the permitted values;
  • Primitive Data-types from:-
    • AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension);
    • AnyURI - the AnyURI data-type (absolute or relative URI);
    • Base - the base data-type for defining a base URI/URL link reference;
    • Boolean - the boolean data-type (with permitted values of "true" and "false");
    • Date - the date data-type (using the [ISO 8601] format);
    • DateTime - the date/time data-type (using the [ISO 8601] format);
    • Decimal - the decimal data-type (a variable precision number that is either positive or negative);
    • Double - the double data-type (double precision floating point number - 64bit);
    • Duration - the duration data-type (using the [ISO 8601] format)
    • Empty - the associated instance must be empty;
    • Float - the float data-type (single precision floating point number - 32bit);
    • ID - the unique identifier data-type;
    • IDREF - the reference to a previously defined unique identifier data-type (ID);
    • IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID);
    • Int - the int data-type (this is derived from the "decimal" data-type);
    • Integer - the integer data-type (using the);
    • Language - the language data-type as defined in [BCP 47];
    • Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models);
    • NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation);
    • NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher;
    • NCName - the NCName data-type (derived from the Name data-type);
    • NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed);
    • PositiveInteger - the positive integer data-type (this is derived from the "nonNegativeinteger" data-type) i.e. an integer that is one or higher;
    • String - the normalized string data type;
    • Time - the time data-type (using the [ISO 8601] format).
Value Space The range of valid values for this parameter (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Multiplicity A property of the parameter indicating the number of values that may be assigned to the parameter (this occurs as a comma separated list). The values of this property are expressed as a range or shorthand for a range using the notation:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
Description Contains descriptions relating to the query parameter and its values space.

toc | top

A1.3 HTTP Codes and Handling for each Endpoint Table Explanation

Table A1.3 provides the key to the descriptions of the list of HTTP codes and handling for each endpoint.

Table A1.3 The key to the descriptions of the list of HTTP codes and handling for each endpoint.
Category Definition and Usage
REST Endpoint The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification).
HTTP Verb The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.
HTTP Codes and Handling The list of HTTP codes that may be returned by the service provider. A description of the cause of the HTTP code is supplied along with a link to the definition of the associated JSON payload structure that contains the detailed status information.

toc | top

A2 UML to JSON Mapping Description Explanations

A2.1 Service Parameter Payload Properties UML/JSON Mapping Table Definition

Table A2.1 provides the key to the descriptions of UML to JSON service parameter mapping tables.

Table A2.1 The key to the descriptions of UML to JSON service parameter mapping tables.
Feature Definition and Usage
Operation Name The name operation (this will be a list of all of the operations for the set of defined interfaces).
Parameter Name The name of the service parameter (these are the parameters listed for the operation that are not mapped to endpoint query parameters).
UML Class The name of the class, the type of the parameter, in the UML diagrams (each class will have an associated stereotype label to denote its modelling interpretation). If the information model description is contained within the same document, this value is hot-linked to that description.
JSON Name The equivalent name of the JSON parameter name in the JSON payload.
JSON Type The JSON type - this will be either "Object" or "Array of Objects".
JSON Schema Data Type The data-type in the context of the JSON Schema. This is hot-linked to the corresponding description table in the binding.

toc | top

A2.2 UML/JSON Payload Class Mapping Table Definition

Table A2.2 provides the key to the descriptions of UML to JSON payload class mapping tables. This table shows the relationship between the two modelling components:

Table A2.2 The key to the descriptions of UML to JSON payload class mapping tables.
Feature Definition and Usage
Name The name of the UML class and the associated set of attributes and characteristics. The first row is used to describe the UML class. Camel-case is used for the attribute and characteristic names.
UML Artefact The UML Class will be denoted as "Root" or "Core" depending on the nature of the class. The list of attributes (mapped to JSON properties) and characteristics (mapped to JSON properties) will be identified as either "Attributes" or "Characteristics".
Data Type The data-type has several permitted values:
  • PT:... - denotes a primitive type with "..." replaced by the actual primitiveType name
  • DT:... (PT:...) - denotes a derived type of name "..." derived from the primitive type "PT:..."
  • [Enumeration(...)] - denotes an enumeration of name "..."
  • [List(...)] - denotes a list of the name "..."
  • [Union(...)] - denotes a union of one or more data-types with the name "..."
  • [Imported(...)] - denotes a class with the name "..." has been imported from another specification
  • "Container[...]" - denotes a class of stereotype "..."
Multiplicity The multiplicity of the child attribute/characteristic. The value for the Class itself is "-N/A-". The multiplicity values are:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
The multiplicity will also indicate when groups of elements have variable multiplicity. In the case when a selection between groups of elements is used then this is denoted by "XOR" being displayed above the multiplicity for each of the grouped elements. Alongside the XOR is the multiplicity of the group as a whole.
JSON Name This is the equivalent name of the UML artefact in the JSON.
JSON Type The JSON data-type. For the Class this will have the value "Object". For the attributes the value is either "Property" or "Array of Properties" depending on the multiplicity. For the characteristics the value is either "Properties" or "Array of Properties" depending on the multiplicity.

toc | top

A2.3 UML/JSON Enumerated and Enumerated List Class Mapping Table Definition

Table A2.3 provides the key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.

Table A2.3 The key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.
Feature Definition and Usage
Enumeration Class Name or Enumeration List Class Name The name of the enumeration class or the enumeration list class.
Description The list of permitted tokens for the enumeration or list. Each value is separated by the "|" character.

toc | top

A2.4 UML/JSON Primitive Types Mapping Table Definition

Table A2.4 provides the key to the descriptions of UML to JSON primitive-type mapping tables.

Table A2.4 The key to the descriptions of UML to JSON primitive-type mapping tables.
Feature Definition and Usage
Primitive Type Name The name of the primitve type used in the specification. Links to the definition of the primitive types, if provided elsewhere in the document, are supplied.
Description The equivalent base data type that is used in the JSON binding.

toc | top

A3 OpenAPI (v2) Descriptions Explanations

These definitions are with respect to the OpenAPI version 2 [OAS, 14] and version 3 [OAS, 17] specifications.

A3.1 OpenAPI General Information Table Explanation

Tables A3.1a and A3.1b provide the key to the OpenAPI(2) and OpenAPI(3) general information respectively.

Table A3.1a The key to the tabular description of the OpenAPI(2) general information.
Category Definition and Usage
Swagger Version The version of the OpenAPI/Swagger specification for this OpenAPI description (this must be set as 2.0).
Specification Title The title of the specification being described.
Specification Version The version of the specification being described.
Description A short, human readable description of the specification being described using OpenAPI.
Terms of Service The Terms of Service for the API.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Host The host (name or ip) serving the API. For the IMS OpenAPI(2) released files this will be set as "www.imsglobal.org". When used for an implementation this should be changed to the actual host.
Base Path The base path that MUST be used in the endpoint URLs (this is relative to the host).
Schemes The set of transfer protocols that are supported using this API. This is a comma separated list.
Consumes A list of MIME types the APIs can consume. This is a comma separated list.
Produces A list of MIME types the APIs can produce. This is a comma separated list.

Table A3.1b The key to the tabular description of the OpenAPI(3) general information.
Category Definition and Usage
OpenAPI Version The version of the OpenAPI specification for this OpenAPI description (this must be set as 3.0.0).
Specification Title The title of the specification being described.
Specification Version The version of the specification being described.
Description A short, human readable description of the specification being described using OpenAPI.
Terms of Service The URL for the associated Terms of Service for the use of this OpenAPI description.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Servers The host (name or ip) serving the API. For the IMS OpenAPI(3) released files this will be set as "www.imsglobal.org/{base-path}". When used for an implementation this should be changed to the actual host.

toc | top

A3.2 OpenAPI Tags Table Explanation

Table A3.2 provides the key to the tabular description of the OpenAPI tags information (versions 2 and 3).

Table A3.2 The key to the tabular description of the OpenAPI tags information.
Category Definition and Usage
Tag Name The title of the tag (this must be unique). The tags are derived from the set of Interfaces defined in the Behavioral Model.
Description A human readable description of the tag. This is the comment associated with the Interface in the Behavioral Model. The list of associated endpoints assigned to this tag are listed with links to the OpenAPI description of those endpoints.

toc | top

A3.3 OpenAPI Security Table Explanation

Table A3.3 provides the key to the tabular description of the OpenAPI security information.

Table A3.3 The key to the tabular description of the OpenAPI security information.
Category Definition and Usage
Security Label The label by which this mode is identified within the OpenAPI file.
Type The security mode supported. The permitted values are:
  • "basic" - use of basic authentication
  • "apikey" - use of an API key (in the header or as a query parameter)
  • "oauth2" - use of OAuth 2.0
Description A human readable description of the usage of this security scheme.
Flow The flow used by the OAuth2 security scheme. The permitted values in OAS2 are:
  • "implicit" - implicit grant type is used to obtain access tokens (see [RFC 6749] sub-section 4.2)
  • "password" - resource owner password credentials grant type (see [RFC 6749] sub-section 4.3)
  • "application" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "accessCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)

The permitted values in OAS3 are:
  • "clientCredentials" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "authorizationCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)
Token URL The token URL to be used for this flow. A value MUST be supplied for the "password", "application" and "accessMode" flows in OAuth 2.
Authorization URL The authorization URL to be used for this flow. A value MUST be supplied for the "accessMode" flows in OAuth 2.
Refresh URL The refresh URL to be used for this flow. A value MAY be supplied for the "accessMode" flows in OAuth 2.
Scopes The set of labels by which the global scope will be identified.
Global Scope The default identification of the security mode to be applied to an endpoint.

toc | top

A3.4 OpenAPI Paths Table Explanation

Table A3.4 provides the key to the OpenAPI paths information for an HTTP Verb.

Table A3.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb.
Category Definition and Usage
Operation ID A unique identifier for the service operation. This is the name of the operation defined in the Behavioral Model.
Summary A human readable summary of the objective of the service operation.
Tags The tag which has been assigned to this operation. The tag is determined by the Interface under which the operation is defined in the Behavioral Model.
Security and Scopes The list of security modes and scopes that MUST be used enable access to this endpoint.
Description A human readable summary of the objective of the service operation. This is derived from the associated description of the operation supplied in the Behavioral Model.
Path Placeholders The set of placeholders, and their meaning, in the URL path that will be replaced by the appropriate values in the request calls.
Query Parameters The set of query parameters that are permitted on the request calls. For each query parameter the following information is supplied:
  • Name - the name of the parameter;
  • Type - the data type for the parameter;
  • Multiplicity - the permitted multiplicity of the parameter. This takes the form of:-
    • "0..1" [optional; restricted]
    • "0..*" [optional; unrestricted] - this will normally be achieved as a comma separated list
    • "1" [mandatory; restricted]
    • "1..*" [mandatory; unrestricted] - this will normally be achieved as a comma separated list
  • Default - the default value for the parameter.
Responses The set of query responses that are permitted for the request. For each response the following information is supplied:
  • Name - the name of the response (this is either a valid HTTP code or the value "default");
  • Type - the data type for the response payload (this is linked to the corresponding OpenAPI definition). If there is no payload then this will be denoted by "N/A";
  • Description - the description of the response including any specific status code values.

toc | top

A3.5 OpenAPI Definitions Table Explanation

Table A3.5 provides the key to the OpenAPI definitions information.

Table A3.5 The key to the tabular description of the OpenAPI definitions information.
Category Definition and Usage
Annotations The definition of the complex-type as supplied in the data model definition for the associated class.
Diagram This diagram consists of two types of linked blocks. Straight link lines denote the set of unordered JSON properties. The block forms are:
  • ComplexType Block - a purple and grey shaded rectangle containing the name of the complexType and whether or not the addition of proprietary properties is permitted;
  • Property Blocks - blue and grey shaded rounded rectangles containing the name of the property, its data-type, and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*" or "+" representing optional, required, optionally many or at least). Anything with a multiplicity of more than one is identified as an ARRAY[].
Type Hierachy The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of JSON properties (this line is only displayed when there is a type hierarchy).
Model The set of child properties. This is an ordered list of properties (as per the implied or actual sequence in the object) and accompanied by their multiplicity. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension.
Source (OAS2) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 2 documentation [OAS, 14] for the description of the permitted contents for this declaration.
Source (OAS3) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 3 documentation [OAS, 17] for the description of the permitted contents for this declaration.

toc | top

Appendix B OpenAPI Listings

This Section is NORMATIVE.

B1 Listing of the OpenAPI (JSON) File

B1.1 OpenAPI 2.0 JSON Listing

The OpenAPI 2 (JSON) listing (based upon [OAS, 14]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi2_v1p0.json).

{
    "swagger" : "2.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster OpenAPI (JSON) Definition",
        "description" : "The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "termsOfService" : "Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE  CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER,  DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.",
        "contact" : {
            "name" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "host" : "www.imsglobal.org",
    "basePath" : "/ims/oneroster/rostering/v1p2",
    "schemes" : [ "http","https" ],
    "tags" : [
        {
            "name" : "AcademicSessionsManagement",
            "description" : "This enables the management of academic sessions i.e. periods of academic activity."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses."
        },
        {
            "name" : "CoursesManagement",
            "description" : "This enables the management of Courses i.e. programme of study."
        },
        {
            "name" : "DemographicsManagement",
            "description" : "This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same."
        },
        {
            "name" : "EnrollmentsManagement",
            "description" : "This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools."
        },
        {
            "name" : "GradingPeriodsManagement",
            "description" : "This enables the management of grading periods i.e. specific academic sessions."
        },
        {
            "name" : "OrgsManagement",
            "description" : "This enables the management of orgs i.e. an organization involved in the learning in some form or other."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools. A school is a type of 'org'."
        },
        {
            "name" : "StudentsManagement",
            "description" : "This enables the management of information about students (a student is a type of 'user')."
        },
        {
            "name" : "TeachersManagement",
            "description" : "This enables the management of information about teachers (a teacher is a type of 'user')."
        },
        {
            "name" : "TermsManagement",
            "description" : "This enables the management of information about terms (a term is a type of 'academicSession')."
        },
        {
            "name" : "UsersManagement",
            "description" : "This enables the management of information about users (including students and teachers)."
        }
    ],
    "securityDefinitions" : {
        "OAuth2CC" : {
            "type" : "oauth2",
            "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
            "flow" : "application",
            "tokenUrl" : "https://www.imsglobal.org",
            "scopes" : {
                "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" : "Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" : "The core set of read operations to enable information about collections or a single object to be obtained.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" : "The read operations to provide all demographics or a single demographics object to be obtained."
            }
        }
    },
    "paths" : {
        "/academicSessions" : {
            "get" : {
                "operationId" : "getAllAcademicSessions",
                "summary" : "The REST read request message for the getAllAcademicSessions() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a collection of academic sessions i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/academicSessions/{sourcedId}" : {
            "get" : {
                "operationId" : "getAcademicSession",
                "summary" : "The REST read request message for the getAcademicSession() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this academic session.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes" : {
            "get" : {
                "operationId" : "getAllClasses",
                "summary" : "The REST read request message for the getAllClasses() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a collection of classes i.e. all classes.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClass",
                "summary" : "The REST read request message for the getStudentsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClass",
                "summary" : "The REST read request message for the getTeachersForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{sourcedId}" : {
            "get" : {
                "operationId" : "getClass",
                "summary" : "The REST read request message for the getClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleClassDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses" : {
            "get" : {
                "operationId" : "getAllCourses",
                "summary" : "The REST read request message for the getAllCourses() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a collection of courses i.e. all courses.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CourseSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses/{courseSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForCourse",
                "summary" : "The REST read request message for the getClassesForCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "courseSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific course.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses/{sourcedId}" : {
            "get" : {
                "operationId" : "getCourse",
                "summary" : "The REST read request message for the getCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this course.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleCourseDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/demographics" : {
            "get" : {
                "operationId" : "getAllDemographics",
                "summary" : "The REST read request message for the getAllDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a collection of demographics i.e. all demographics.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/DemographicsSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/demographics/{sourcedId}" : {
            "get" : {
                "operationId" : "getDemographics",
                "summary" : "The REST read request message for the getDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user demographics.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleDemographicsDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/enrollments" : {
            "get" : {
                "operationId" : "getAllEnrollments",
                "summary" : "The REST read request message for the getAllEnrollments() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a collection of enrollments i.e. all enrollments.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/enrollments/{sourcedId}" : {
            "get" : {
                "operationId" : "getEnrollment",
                "summary" : "The REST read request message for the getEnrollment() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this enrollment.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleEnrollmentDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/gradingPeriods" : {
            "get" : {
                "operationId" : "getAllGradingPeriods",
                "summary" : "The REST read request message for the getAllGradingPeriods() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a collection of grading periods i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/gradingPeriods/{sourcedId}" : {
            "get" : {
                "operationId" : "getGradingPeriod",
                "summary" : "The REST read request message for the getGradingPeriod() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this grading period.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/orgs" : {
            "get" : {
                "operationId" : "getAllOrgs",
                "summary" : "The REST read request message for the getAllOrgs() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a collection of orgs i.e. all orgs.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/OrgSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/orgs/{sourcedId}" : {
            "get" : {
                "operationId" : "getOrg",
                "summary" : "The REST read request message for the getOrg() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this org.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleOrgDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools" : {
            "get" : {
                "operationId" : "getAllSchools",
                "summary" : "The REST read request message for the getAllSchools() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a collection of schools i.e. all schools.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/OrgSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForSchool",
                "summary" : "The REST read request message for the getClassesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForClassInSchool",
                "summary" : "The REST read request message for the getEnrollmentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClassInSchool",
                "summary" : "The REST read request message for the getStudentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClassInSchool",
                "summary" : "The REST read request message for the getTeachersForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/courses" : {
            "get" : {
                "operationId" : "getCoursesForSchool",
                "summary" : "The REST read request message for the getCoursesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CourseSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForSchool",
                "summary" : "The REST read request message for the getEnrollmentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForSchool",
                "summary" : "The REST read request message for the getStudentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForSchool",
                "summary" : "The REST read request message for the getTeachersForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/terms" : {
            "get" : {
                "operationId" : "getTermsForSchool",
                "summary" : "The REST read request message for the getTermsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{sourcedId}" : {
            "get" : {
                "operationId" : "getSchool",
                "summary" : "The REST read request message for the getSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleOrgDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students" : {
            "get" : {
                "operationId" : "getAllStudents",
                "summary" : "The REST read request message for the getAllStudents() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a collection of students i.e. all students.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students/{sourcedId}" : {
            "get" : {
                "operationId" : "getStudent",
                "summary" : "The REST read request message for the getStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students/{studentSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForStudent",
                "summary" : "The REST read request message for the getClassesForStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers" : {
            "get" : {
                "operationId" : "getAllTeachers",
                "summary" : "The REST read request message for the getAllTeachers() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a collection of teachers i.e. all teachers.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers/{sourcedId}" : {
            "get" : {
                "operationId" : "getTeacher",
                "summary" : "The REST read request message for the getTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this teacher.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers/{teacherSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTeacher",
                "summary" : "The REST read request message for the getClassesForTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "teacherSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific teacher.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms" : {
            "get" : {
                "operationId" : "getAllTerms",
                "summary" : "The REST read request message for the getAllTerms() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a collection of terms i.e. all terms.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{sourcedId}" : {
            "get" : {
                "operationId" : "getTerm",
                "summary" : "The REST read request message for the getTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTerm",
                "summary" : "The REST read request message for the getClassesForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/gradingPeriods" : {
            "get" : {
                "operationId" : "getGradingPeriodsForTerm",
                "summary" : "The REST read request message for the getGradingPeriodsForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users" : {
            "get" : {
                "operationId" : "getAllUsers",
                "summary" : "The REST read request message for the getAllUsers() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a collection of users i.e. all users (including students and teachers).",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{sourcedId}" : {
            "get" : {
                "operationId" : "getUser",
                "summary" : "The REST read request message for the getUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForUser",
                "summary" : "The REST read request message for the getClassesForUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "type" : "string"
                },
                "parent" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "AcademicSessionSetDType" : {
            "description" : "This is the container for a collection of academicSessions 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" : {
                "academicSessions" : {
                    "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcademicSessionDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "type" : "string"
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassSetDType" : {
            "description" : "This is the container for a collection of classes 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" : {
                "classes" : {
                    "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ClassDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "CourseDType" : {
            "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                    "type" : "string"
                },
                "schoolYear" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "courseCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "org" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseSetDType" : {
            "description" : "This is the container for a collection of courses 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" : {
                "courses" : {
                    "description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CourseDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "additionalProperties" : true
        },
        "DemographicsDType" : {
            "description" : "Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "birthDate" : {
                    "description" : "Model Primitive Datatype = Date. the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "sex" : {
                    "description" : "The sex of the individual. The permitted values are from an enumerated list.",
                    "type" : "string"
                },
                "americanIndianOrAlaskaNative" : {
                    "description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "asian" : {
                    "description" : "Identification of whether or not the user is of Asian ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "blackOrAfricanAmerican" : {
                    "description" : "Identification of whether or not the user is black or African American ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "nativeHawaiianOrOtherPacificIslander" : {
                    "description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "white" : {
                    "description" : "Identification of whether or not the user is of white ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "demographicRaceTwoOrMoreRaces" : {
                    "description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "hispanicOrLatinoEthnicity" : {
                    "description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "countryOfBirthCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "stateOfBirthAbbreviation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "cityOfBirth" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the city in which the user was born.",
                    "type" : "string"
                },
                "publicSchoolResidenceStatus" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified" ],
            "additionalProperties" : false
        },
        "DemographicsSetDType" : {
            "description" : "This is the container for a collection of demographics 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" : {
                "demographics" : {
                    "description" : "The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/DemographicsDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "EnrollmentDType" : {
            "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "user" : {
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "role" : {
                    "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                    "type" : "string"
                },
                "primary" : {
                    "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
            "additionalProperties" : false
        },
        "EnrollmentSetDType" : {
            "description" : "This is the container for a collection of enrollment 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" : {
                "enrollments" : {
                    "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/EnrollmentDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "additionalProperties" : true
        },
        "OrgDType" : {
            "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of organization. This uses a predefined vocabulary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                    "type" : "string"
                },
                "parent" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "children" : {
                    "description" : "The 'sourcedIds' for the set of child organizations.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
            "additionalProperties" : false
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "OrgSetDType" : {
            "description" : "This is the container for a collection of org 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" : {
                "orgs" : {
                    "description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "type" : "string"
                },
                "org" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "SingleAcademicSessionDType" : {
            "description" : "This is the container for a single academicSession instance for a message payload.",
            "type" : "object",
            "properties" : {
                "academicSession" : {
                    "$ref" : "#/definitions/AcademicSessionDType"
                }
            },
            "required" : [ "academicSession" ],
            "additionalProperties" : false
        },
        "SingleClassDType" : {
            "description" : "This is the container for a single class instance for a message payload.",
            "type" : "object",
            "properties" : {
                "class" : {
                    "$ref" : "#/definitions/ClassDType"
                }
            },
            "required" : [ "class" ],
            "additionalProperties" : false
        },
        "SingleCourseDType" : {
            "description" : "This is the container for a single course instance for a message payload.",
            "type" : "object",
            "properties" : {
                "course" : {
                    "$ref" : "#/definitions/CourseDType"
                }
            },
            "required" : [ "course" ],
            "additionalProperties" : false
        },
        "SingleDemographicsDType" : {
            "description" : "This is the container for a single demographics instance for a message payload.",
            "type" : "object",
            "properties" : {
                "demographics" : {
                    "$ref" : "#/definitions/DemographicsDType"
                }
            },
            "required" : [ "demographics" ],
            "additionalProperties" : false
        },
        "SingleEnrollmentDType" : {
            "description" : "This is the container for a single enrollment instance for a message payload.",
            "type" : "object",
            "properties" : {
                "enrollment" : {
                    "$ref" : "#/definitions/EnrollmentDType"
                }
            },
            "required" : [ "enrollment" ],
            "additionalProperties" : false
        },
        "SingleOrgDType" : {
            "description" : "This is the container for a single org instance for a message payload.",
            "type" : "object",
            "properties" : {
                "org" : {
                    "$ref" : "#/definitions/OrgDType"
                }
            },
            "required" : [ "org" ],
            "additionalProperties" : false
        },
        "SingleUserDType" : {
            "description" : "This is the container for a single user instance for a message payload.",
            "type" : "object",
            "properties" : {
                "user" : {
                    "$ref" : "#/definitions/UserDType"
                }
            },
            "required" : [ "user" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        },
        "UserSetDType" : {
            "description" : "This is the container for a collection of user 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" : {
                "users" : {
                    "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        },
        "imsx_StatusInfoDType" : {
            "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.",
            "type" : "object",
            "properties" : {
                "imsx_codeMajor" : {
                    "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                    "type" : "string",
                    "enum" : [ "success","processing","failure","unsupported" ]
                },
                "imsx_severity" : {
                    "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                    "type" : "string",
                    "enum" : [ "status","warning","error" ]
                },
                "imsx_description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                    "type" : "string"
                },
                "imsx_CodeMinor" : {
                    "$ref" : "#/definitions/imsx_CodeMinorDType"
                }
            },
            "required" : [ "imsx_codeMajor","imsx_severity" ],
            "additionalProperties" : false
        }
    },
    "consumes" : [ "application/json" ],
    "produces" : [ "application/json" ]
}
        

B1.2 OpenAPI 3.0 JSON Listing

The OpenAPI 3 (JSON) listing (based upon [OAS, 17]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi3_v1p0.json).

{
    "openapi" : "3.0.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster OpenAPI (JSON) Definition",
        "description" : "The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "termsOfService" : "https://www.imsglobal.org/license.html",
        "contact" : {
            "name" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).",
                    "default" : "www.imsglobal.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/oneroster/rostering/v1p2"],
                    "default" : "/ims/oneroster/rostering/v1p2"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AcademicSessionsManagement",
            "description" : "This enables the management of academic sessions i.e. periods of academic activity."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses."
        },
        {
            "name" : "CoursesManagement",
            "description" : "This enables the management of Courses i.e. programme of study."
        },
        {
            "name" : "DemographicsManagement",
            "description" : "This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same."
        },
        {
            "name" : "EnrollmentsManagement",
            "description" : "This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools."
        },
        {
            "name" : "GradingPeriodsManagement",
            "description" : "This enables the management of grading periods i.e. specific academic sessions."
        },
        {
            "name" : "OrgsManagement",
            "description" : "This enables the management of orgs i.e. an organization involved in the learning in some form or other."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools. A school is a type of 'org'."
        },
        {
            "name" : "StudentsManagement",
            "description" : "This enables the management of information about students (a student is a type of 'user')."
        },
        {
            "name" : "TeachersManagement",
            "description" : "This enables the management of information about teachers (a teacher is a type of 'user')."
        },
        {
            "name" : "TermsManagement",
            "description" : "This enables the management of information about terms (a term is a type of 'academicSession')."
        },
        {
            "name" : "UsersManagement",
            "description" : "This enables the management of information about users (including students and teachers)."
        }
    ],
    "paths" : {
        "/academicSessions" : {
            "get" : {
                "operationId" : "getAllAcademicSessions",
                "summary" : "The REST read request message for the getAllAcademicSessions() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a collection of academic sessions i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AcademicSessionSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllAcademicSessions",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllAcademicSessions",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllAcademicSessions",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllAcademicSessions",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/academicSessions/{sourcedId}" : {
            "get" : {
                "operationId" : "getAcademicSession",
                "summary" : "The REST read request message for the getAcademicSession() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this academic session.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAcademicSessionDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes" : {
            "get" : {
                "operationId" : "getAllClasses",
                "summary" : "The REST read request message for the getAllClasses() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a collection of classes i.e. all classes.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllClasses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllClasses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllClasses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllClasses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClass",
                "summary" : "The REST read request message for the getStudentsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getStudentsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getStudentsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClass",
                "summary" : "The REST read request message for the getTeachersForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getTeachersForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeachersForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeachersForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getTeachersForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{sourcedId}" : {
            "get" : {
                "operationId" : "getClass",
                "summary" : "The REST read request message for the getClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleClassDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/courses" : {
            "get" : {
                "operationId" : "getAllCourses",
                "summary" : "The REST read request message for the getAllCourses() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a collection of courses i.e. all courses.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/CourseSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllCourses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllCourses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllCourses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllCourses",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/courses/{courseSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForCourse",
                "summary" : "The REST read request message for the getClassesForCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "courseSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific course.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForCourse",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForCourse",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForCourse",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForCourse",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/courses/{sourcedId}" : {
            "get" : {
                "operationId" : "getCourse",
                "summary" : "The REST read request message for the getCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this course.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleCourseDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/demographics" : {
            "get" : {
                "operationId" : "getAllDemographics",
                "summary" : "The REST read request message for the getAllDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a collection of demographics i.e. all demographics.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/DemographicsSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllDemographics",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllDemographics",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllDemographics",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllDemographics",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/demographics/{sourcedId}" : {
            "get" : {
                "operationId" : "getDemographics",
                "summary" : "The REST read request message for the getDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user demographics.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleDemographicsDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/enrollments" : {
            "get" : {
                "operationId" : "getAllEnrollments",
                "summary" : "The REST read request message for the getAllEnrollments() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a collection of enrollments i.e. all enrollments.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/EnrollmentSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllEnrollments",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllEnrollments",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllEnrollments",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllEnrollments",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/enrollments/{sourcedId}" : {
            "get" : {
                "operationId" : "getEnrollment",
                "summary" : "The REST read request message for the getEnrollment() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this enrollment.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleEnrollmentDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/gradingPeriods" : {
            "get" : {
                "operationId" : "getAllGradingPeriods",
                "summary" : "The REST read request message for the getAllGradingPeriods() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a collection of grading periods i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AcademicSessionSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllGradingPeriods",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllGradingPeriods",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllGradingPeriods",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllGradingPeriods",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/gradingPeriods/{sourcedId}" : {
            "get" : {
                "operationId" : "getGradingPeriod",
                "summary" : "The REST read request message for the getGradingPeriod() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this grading period.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAcademicSessionDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orgs" : {
            "get" : {
                "operationId" : "getAllOrgs",
                "summary" : "The REST read request message for the getAllOrgs() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a collection of orgs i.e. all orgs.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/OrgSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllOrgs",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllOrgs",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllOrgs",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllOrgs",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orgs/{sourcedId}" : {
            "get" : {
                "operationId" : "getOrg",
                "summary" : "The REST read request message for the getOrg() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this org.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleOrgDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools" : {
            "get" : {
                "operationId" : "getAllSchools",
                "summary" : "The REST read request message for the getAllSchools() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a collection of schools i.e. all schools.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/OrgSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForSchool",
                "summary" : "The REST read request message for the getClassesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForClassInSchool",
                "summary" : "The REST read request message for the getEnrollmentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/EnrollmentSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getEnrollmentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getEnrollmentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getEnrollmentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getEnrollmentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClassInSchool",
                "summary" : "The REST read request message for the getStudentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getStudentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getStudentsForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClassInSchool",
                "summary" : "The REST read request message for the getTeachersForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getTeachersForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeachersForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeachersForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getTeachersForClassInSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/courses" : {
            "get" : {
                "operationId" : "getCoursesForSchool",
                "summary" : "The REST read request message for the getCoursesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/CourseSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getCoursesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getCoursesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getCoursesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getCoursesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForSchool",
                "summary" : "The REST read request message for the getEnrollmentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/EnrollmentSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getEnrollmentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getEnrollmentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getEnrollmentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getEnrollmentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForSchool",
                "summary" : "The REST read request message for the getStudentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getStudentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getStudentsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForSchool",
                "summary" : "The REST read request message for the getTeachersForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getTeachersForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeachersForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeachersForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getTeachersForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/terms" : {
            "get" : {
                "operationId" : "getTermsForSchool",
                "summary" : "The REST read request message for the getTermsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AcademicSessionSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getTermsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTermsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTermsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getTermsForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{sourcedId}" : {
            "get" : {
                "operationId" : "getSchool",
                "summary" : "The REST read request message for the getSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleOrgDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/students" : {
            "get" : {
                "operationId" : "getAllStudents",
                "summary" : "The REST read request message for the getAllStudents() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a collection of students i.e. all students.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllStudents",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllStudents",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllStudents",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllStudents",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/students/{sourcedId}" : {
            "get" : {
                "operationId" : "getStudent",
                "summary" : "The REST read request message for the getStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this student.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleUserDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/students/{studentSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForStudent",
                "summary" : "The REST read request message for the getClassesForStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific student.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForStudent",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForStudent",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForStudent",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForStudent",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/teachers" : {
            "get" : {
                "operationId" : "getAllTeachers",
                "summary" : "The REST read request message for the getAllTeachers() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a collection of teachers i.e. all teachers.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllTeachers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllTeachers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllTeachers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllTeachers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/teachers/{sourcedId}" : {
            "get" : {
                "operationId" : "getTeacher",
                "summary" : "The REST read request message for the getTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this teacher.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleUserDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/teachers/{teacherSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTeacher",
                "summary" : "The REST read request message for the getClassesForTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "teacherSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific teacher.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForTeacher",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForTeacher",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForTeacher",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForTeacher",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/terms" : {
            "get" : {
                "operationId" : "getAllTerms",
                "summary" : "The REST read request message for the getAllTerms() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a collection of terms i.e. all terms.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AcademicSessionSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllTerms",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllTerms",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllTerms",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllTerms",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/terms/{sourcedId}" : {
            "get" : {
                "operationId" : "getTerm",
                "summary" : "The REST read request message for the getTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this term.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAcademicSessionDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTerm",
                "summary" : "The REST read request message for the getClassesForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/gradingPeriods" : {
            "get" : {
                "operationId" : "getGradingPeriodsForTerm",
                "summary" : "The REST read request message for the getGradingPeriodsForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AcademicSessionSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getGradingPeriodsForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getGradingPeriodsForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getGradingPeriodsForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getGradingPeriodsForTerm",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users" : {
            "get" : {
                "operationId" : "getAllUsers",
                "summary" : "The REST read request message for the getAllUsers() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a collection of users i.e. all users (including students and teachers).",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/UserSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllUsers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllUsers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllUsers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllUsers",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/{sourcedId}" : {
            "get" : {
                "operationId" : "getUser",
                "summary" : "The REST read request message for the getUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleUserDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForUser",
                "summary" : "The REST read request message for the getClassesForUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ClassSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getClassesForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassesForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassesForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getClassesForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.imsglobal.org",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" : "Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" : "The core set of read operations to enable information about collections or a single object to be obtained.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" : "The read operations to provide all demographics or a single demographics object to be obtained."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AcadSessionGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'academicSession'.",
                        "type" : "string",
                        "enum" : [ "academicSession" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AcademicSessionDType" : {
                "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                        "type" : "string"
                    },
                    "startDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "type" : {
                        "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "parent" : {
                        "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                    },
                    "children" : {
                        "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                        }
                    },
                    "schoolYear" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                        "type" : "string"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
                "additionalProperties" : false
            },
            "AcademicSessionSetDType" : {
                "description" : "This is the container for a collection of academicSessions 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" : {
                    "academicSessions" : {
                        "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AcademicSessionDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ClassDType" : {
                "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                        "type" : "string"
                    },
                    "classCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                        "type" : "string"
                    },
                    "classType" : {
                        "description" : "The type of class. This is based upon an enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "homeroom","scheduled" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "location" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                        "type" : "string"
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "subjects" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "course" : {
                        "$ref" : "#/components/schemas/CourseGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "terms" : {
                        "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                        }
                    },
                    "subjectCodes" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "periods" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "resources" : {
                        "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
                "additionalProperties" : false
            },
            "ClassGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'class'.",
                        "type" : "string",
                        "enum" : [ "class" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ClassSetDType" : {
                "description" : "This is the container for a collection of classes 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" : {
                    "classes" : {
                        "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ClassDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CourseDType" : {
                "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                        "type" : "string"
                    },
                    "schoolYear" : {
                        "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                    },
                    "courseCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                        "type" : "string"
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "subjects" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "org" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "subjectCodes" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "resources" : {
                        "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
                "additionalProperties" : false
            },
            "CourseGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'course'.",
                        "type" : "string",
                        "enum" : [ "course" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "CourseSetDType" : {
                "description" : "This is the container for a collection of courses 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" : {
                    "courses" : {
                        "description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/CourseDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CredentialDType" : {
                "description" : "The container for a single set of credentials for an account.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                        "type" : "string"
                    },
                    "username" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The username.",
                        "type" : "string"
                    },
                    "password" : {
                        "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","username" ],
                "additionalProperties" : true
            },
            "DemographicsDType" : {
                "description" : "Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "birthDate" : {
                        "description" : "Model Primitive Datatype = Date. the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "sex" : {
                        "description" : "The sex of the individual. The permitted values are from an enumerated list.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "male","female","unspecified","other" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "americanIndianOrAlaskaNative" : {
                        "description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "asian" : {
                        "description" : "Identification of whether or not the user is of Asian ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "blackOrAfricanAmerican" : {
                        "description" : "Identification of whether or not the user is black or African American ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "nativeHawaiianOrOtherPacificIslander" : {
                        "description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "white" : {
                        "description" : "Identification of whether or not the user is of white ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "demographicRaceTwoOrMoreRaces" : {
                        "description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "hispanicOrLatinoEthnicity" : {
                        "description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "countryOfBirthCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    },
                    "stateOfBirthAbbreviation" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    },
                    "cityOfBirth" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the city in which the user was born.",
                        "type" : "string"
                    },
                    "publicSchoolResidenceStatus" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified" ],
                "additionalProperties" : false
            },
            "DemographicsSetDType" : {
                "description" : "This is the container for a collection of demographics 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" : {
                    "demographics" : {
                        "description" : "The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/DemographicsDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "EnrollmentDType" : {
                "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "user" : {
                        "$ref" : "#/components/schemas/UserGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/components/schemas/ClassGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "role" : {
                        "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "administrator","proctor","student","teacher" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "primary" : {
                        "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "beginDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
                "additionalProperties" : false
            },
            "EnrollmentSetDType" : {
                "description" : "This is the container for a collection of enrollment 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" : {
                    "enrollments" : {
                        "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/EnrollmentDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "MetadataDType" : {
                "description" : "The container for the proprietary extensions.",
                "type" : "object",
                "properties" : {

                },
                "additionalProperties" : true
            },
            "OrgDType" : {
                "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "name" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of organization. This uses a predefined vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "department","district","local","national","school","state" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                        "type" : "string"
                    },
                    "parent" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "children" : {
                        "description" : "The 'sourcedIds' for the set of child organizations.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/OrgGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
                "additionalProperties" : false
            },
            "OrgGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'org'.",
                        "type" : "string",
                        "enum" : [ "org" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "OrgSetDType" : {
                "description" : "This is the container for a collection of org 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" : {
                    "orgs" : {
                        "description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/OrgDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ResourceGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'resource'.",
                        "type" : "string",
                        "enum" : [ "resource" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "RoleDType" : {
                "description" : "The container for one mapping between a role and an org for the user.",
                "type" : "object",
                "properties" : {
                    "roleType" : {
                        "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                        "type" : "string",
                        "enum" : [ "primary","secondary" ]
                    },
                    "role" : {
                        "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "org" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "userProfile" : {
                        "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "beginDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                        "type" : "string",
                        "format" : "date"
                    }
                },
                "required" : [ "roleType","role","org" ],
                "additionalProperties" : false
            },
            "SingleAcademicSessionDType" : {
                "description" : "This is the container for a single academicSession instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "academicSession" : {
                        "$ref" : "#/components/schemas/AcademicSessionDType"
                    }
                },
                "required" : [ "academicSession" ],
                "additionalProperties" : false
            },
            "SingleClassDType" : {
                "description" : "This is the container for a single class instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "class" : {
                        "$ref" : "#/components/schemas/ClassDType"
                    }
                },
                "required" : [ "class" ],
                "additionalProperties" : false
            },
            "SingleCourseDType" : {
                "description" : "This is the container for a single course instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "course" : {
                        "$ref" : "#/components/schemas/CourseDType"
                    }
                },
                "required" : [ "course" ],
                "additionalProperties" : false
            },
            "SingleDemographicsDType" : {
                "description" : "This is the container for a single demographics instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "demographics" : {
                        "$ref" : "#/components/schemas/DemographicsDType"
                    }
                },
                "required" : [ "demographics" ],
                "additionalProperties" : false
            },
            "SingleEnrollmentDType" : {
                "description" : "This is the container for a single enrollment instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "enrollment" : {
                        "$ref" : "#/components/schemas/EnrollmentDType"
                    }
                },
                "required" : [ "enrollment" ],
                "additionalProperties" : false
            },
            "SingleOrgDType" : {
                "description" : "This is the container for a single org instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "org" : {
                        "$ref" : "#/components/schemas/OrgDType"
                    }
                },
                "required" : [ "org" ],
                "additionalProperties" : false
            },
            "SingleUserDType" : {
                "description" : "This is the container for a single user instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "user" : {
                        "$ref" : "#/components/schemas/UserDType"
                    }
                },
                "required" : [ "user" ],
                "additionalProperties" : false
            },
            "UserDType" : {
                "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "userMasterIdentifier" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                        "type" : "string"
                    },
                    "username" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                        "type" : "string"
                    },
                    "userIds" : {
                        "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/UserIdDType"
                        }
                    },
                    "enabledUser" : {
                        "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "givenName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                        "type" : "string"
                    },
                    "familyName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                        "type" : "string"
                    },
                    "middleName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                        "type" : "string"
                    },
                    "preferredFirstName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "preferredMiddleName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "preferredLastName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "pronouns" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                        "type" : "string"
                    },
                    "roles" : {
                        "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/RoleDType"
                        }
                    },
                    "userProfiles" : {
                        "description" : "The set of system/app/tool profiles for the user.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/UserProfileDType"
                        }
                    },
                    "primaryOrg" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                        "type" : "string"
                    },
                    "email" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                        "type" : "string"
                    },
                    "sms" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                        "type" : "string"
                    },
                    "phone" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                        "type" : "string"
                    },
                    "agents" : {
                        "description" : "The links to other people i.e. User 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/UserGUIDRefDType"
                        }
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "password" : {
                        "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                        "type" : "string"
                    },
                    "resources" : {
                        "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
                "additionalProperties" : false
            },
            "UserGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'user'.",
                        "type" : "string",
                        "enum" : [ "user" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "UserIdDType" : {
                "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                        "type" : "string"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. The user identifier.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","identifier" ],
                "additionalProperties" : false
            },
            "UserProfileDType" : {
                "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
                "type" : "object",
                "properties" : {
                    "profileId" : {
                        "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "profileType" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                        "type" : "string"
                    },
                    "vendorId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                        "type" : "string"
                    },
                    "applicationId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                        "type" : "string"
                    },
                    "credentials" : {
                        "description" : "The set of credentials that are available for access to this profile.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/CredentialDType"
                        }
                    }
                },
                "required" : [ "profileId","profileType","vendorId" ],
                "additionalProperties" : false
            },
            "UserSetDType" : {
                "description" : "This is the container for a collection of user 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" : {
                    "users" : {
                        "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/UserDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                    "server_busy","unknownobject","internal_server_error" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMajor" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "success","processing","failure","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "status","warning","error" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_CodeMinor" : {
                        "$ref" : "#/components/schemas/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "additionalProperties" : false
            }
        }
    }
}
        

B1.3 OpenAPI 3.1 JSON Listing

The OpenAPI 3.1 (JSON) listing (based upon [OAS, 21]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi3p1_v1p0.json).

{
    "openapi" : "3.1.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster OpenAPI (JSON) Definition",
        "description" : "The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "termsOfService" : "Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE  CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER,  DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.",
        "contact" : {
            "name" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).",
                    "default" : "www.imsglobal.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/oneroster/rostering/v1p2"],
                    "default" : "/ims/oneroster/rostering/v1p2"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AcademicSessionsManagement",
            "description" : "This enables the management of academic sessions i.e. periods of academic activity."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses."
        },
        {
            "name" : "CoursesManagement",
            "description" : "This enables the management of Courses i.e. programme of study."
        },
        {
            "name" : "DemographicsManagement",
            "description" : "This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same."
        },
        {
            "name" : "EnrollmentsManagement",
            "description" : "This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools."
        },
        {
            "name" : "GradingPeriodsManagement",
            "description" : "This enables the management of grading periods i.e. specific academic sessions."
        },
        {
            "name" : "OrgsManagement",
            "description" : "This enables the management of orgs i.e. an organization involved in the learning in some form or other."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools. A school is a type of 'org'."
        },
        {
            "name" : "StudentsManagement",
            "description" : "This enables the management of information about students (a student is a type of 'user')."
        },
        {
            "name" : "TeachersManagement",
            "description" : "This enables the management of information about teachers (a teacher is a type of 'user')."
        },
        {
            "name" : "TermsManagement",
            "description" : "This enables the management of information about terms (a term is a type of 'academicSession')."
        },
        {
            "name" : "UsersManagement",
            "description" : "This enables the management of information about users (including students and teachers)."
        }
    ],
    "paths" : {
        "/academicSessions" : {
            "get" : {
                "operationId" : "getAllAcademicSessions",
                "summary" : "The REST read request message for the getAllAcademicSessions() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a collection of academic sessions i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/academicSessions/{sourcedId}" : {
            "get" : {
                "operationId" : "getAcademicSession",
                "summary" : "The REST read request message for the getAcademicSession() API call.",
                "tags" : [ "AcademicSessionsManagement" ],
                "description" : "To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this academic session.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes" : {
            "get" : {
                "operationId" : "getAllClasses",
                "summary" : "The REST read request message for the getAllClasses() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a collection of classes i.e. all classes.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClass",
                "summary" : "The REST read request message for the getStudentsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClass",
                "summary" : "The REST read request message for the getTeachersForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{sourcedId}" : {
            "get" : {
                "operationId" : "getClass",
                "summary" : "The REST read request message for the getClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleClassDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses" : {
            "get" : {
                "operationId" : "getAllCourses",
                "summary" : "The REST read request message for the getAllCourses() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a collection of courses i.e. all courses.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CourseSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses/{courseSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForCourse",
                "summary" : "The REST read request message for the getClassesForCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "courseSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific course.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/courses/{sourcedId}" : {
            "get" : {
                "operationId" : "getCourse",
                "summary" : "The REST read request message for the getCourse() API call.",
                "tags" : [ "CoursesManagement" ],
                "description" : "To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this course.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleCourseDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/demographics" : {
            "get" : {
                "operationId" : "getAllDemographics",
                "summary" : "The REST read request message for the getAllDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a collection of demographics i.e. all demographics.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/DemographicsSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/demographics/{sourcedId}" : {
            "get" : {
                "operationId" : "getDemographics",
                "summary" : "The REST read request message for the getDemographics() API call.",
                "tags" : [ "DemographicsManagement" ],
                "description" : "To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user demographics.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleDemographicsDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/enrollments" : {
            "get" : {
                "operationId" : "getAllEnrollments",
                "summary" : "The REST read request message for the getAllEnrollments() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a collection of enrollments i.e. all enrollments.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/enrollments/{sourcedId}" : {
            "get" : {
                "operationId" : "getEnrollment",
                "summary" : "The REST read request message for the getEnrollment() API call.",
                "tags" : [ "EnrollmentsManagement" ],
                "description" : "To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this enrollment.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleEnrollmentDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/gradingPeriods" : {
            "get" : {
                "operationId" : "getAllGradingPeriods",
                "summary" : "The REST read request message for the getAllGradingPeriods() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a collection of grading periods i.e. all academic sessions.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/gradingPeriods/{sourcedId}" : {
            "get" : {
                "operationId" : "getGradingPeriod",
                "summary" : "The REST read request message for the getGradingPeriod() API call.",
                "tags" : [ "GradingPeriodsManagement" ],
                "description" : "To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this grading period.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/orgs" : {
            "get" : {
                "operationId" : "getAllOrgs",
                "summary" : "The REST read request message for the getAllOrgs() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a collection of orgs i.e. all orgs.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/OrgSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/orgs/{sourcedId}" : {
            "get" : {
                "operationId" : "getOrg",
                "summary" : "The REST read request message for the getOrg() API call.",
                "tags" : [ "OrgsManagement" ],
                "description" : "To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this org.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleOrgDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools" : {
            "get" : {
                "operationId" : "getAllSchools",
                "summary" : "The REST read request message for the getAllSchools() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a collection of schools i.e. all schools.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/OrgSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForSchool",
                "summary" : "The REST read request message for the getClassesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForClassInSchool",
                "summary" : "The REST read request message for the getEnrollmentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForClassInSchool",
                "summary" : "The REST read request message for the getStudentsForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForClassInSchool",
                "summary" : "The REST read request message for the getTeachersForClassInSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/courses" : {
            "get" : {
                "operationId" : "getCoursesForSchool",
                "summary" : "The REST read request message for the getCoursesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CourseSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentsForSchool",
                "summary" : "The REST read request message for the getEnrollmentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/EnrollmentSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentsForSchool",
                "summary" : "The REST read request message for the getStudentsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeachersForSchool",
                "summary" : "The REST read request message for the getTeachersForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/terms" : {
            "get" : {
                "operationId" : "getTermsForSchool",
                "summary" : "The REST read request message for the getTermsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{sourcedId}" : {
            "get" : {
                "operationId" : "getSchool",
                "summary" : "The REST read request message for the getSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleOrgDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students" : {
            "get" : {
                "operationId" : "getAllStudents",
                "summary" : "The REST read request message for the getAllStudents() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a collection of students i.e. all students.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students/{sourcedId}" : {
            "get" : {
                "operationId" : "getStudent",
                "summary" : "The REST read request message for the getStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/students/{studentSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForStudent",
                "summary" : "The REST read request message for the getClassesForStudent() API call.",
                "tags" : [ "StudentsManagement" ],
                "description" : "To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers" : {
            "get" : {
                "operationId" : "getAllTeachers",
                "summary" : "The REST read request message for the getAllTeachers() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a collection of teachers i.e. all teachers.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers/{sourcedId}" : {
            "get" : {
                "operationId" : "getTeacher",
                "summary" : "The REST read request message for the getTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this teacher.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/teachers/{teacherSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTeacher",
                "summary" : "The REST read request message for the getClassesForTeacher() API call.",
                "tags" : [ "TeachersManagement" ],
                "description" : "To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "teacherSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific teacher.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms" : {
            "get" : {
                "operationId" : "getAllTerms",
                "summary" : "The REST read request message for the getAllTerms() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a collection of terms i.e. all terms.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{sourcedId}" : {
            "get" : {
                "operationId" : "getTerm",
                "summary" : "The REST read request message for the getTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAcademicSessionDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForTerm",
                "summary" : "The REST read request message for the getClassesForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/terms/{termSourcedId}/gradingPeriods" : {
            "get" : {
                "operationId" : "getGradingPeriodsForTerm",
                "summary" : "The REST read request message for the getGradingPeriodsForTerm() API call.",
                "tags" : [ "TermsManagement" ],
                "description" : "To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "termSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific term.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AcademicSessionSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users" : {
            "get" : {
                "operationId" : "getAllUsers",
                "summary" : "The REST read request message for the getAllUsers() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a collection of users i.e. all users (including students and teachers).",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/UserSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{sourcedId}" : {
            "get" : {
                "operationId" : "getUser",
                "summary" : "The REST read request message for the getUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassesForUser",
                "summary" : "The REST read request message for the getClassesForUser() API call.",
                "tags" : [ "UsersManagement" ],
                "description" : "To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specific user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "default" : {
                        "description" : "This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "200" : {
                        "description" : "The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ClassSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "403" : {
                        "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "429" : {
                        "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "500" : {
                        "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.imsglobal.org",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" : "Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" : "The core set of read operations to enable information about collections or a single object to be obtained.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" : "The read operations to provide all demographics or a single demographics object to be obtained."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AcadSessionGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'academicSession'.",
                        "type" : "string",
                        "enum" : [ "academicSession" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AcademicSessionDType" : {
                "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                        "type" : "string"
                    },
                    "startDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "type" : {
                        "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                        "type" : "string"
                    },
                    "parent" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    },
                    "children" : {
                        "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                        }
                    },
                    "schoolYear" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                        "type" : "string"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
                "additionalProperties" : false
            },
            "AcademicSessionSetDType" : {
                "description" : "This is the container for a collection of academicSessions 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" : {
                    "academicSessions" : {
                        "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AcademicSessionDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ClassDType" : {
                "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                        "type" : "string"
                    },
                    "classCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                        "type" : "string"
                    },
                    "classType" : {
                        "description" : "The type of class. This is based upon an enumerated vocabulary.",
                        "type" : "string"
                    },
                    "location" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                        "type" : "string"
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "subjects" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "course" : {
                        "$ref" : "#/definitions/CourseGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "terms" : {
                        "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                        }
                    },
                    "subjectCodes" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "periods" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "resources" : {
                        "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
                "additionalProperties" : false
            },
            "ClassGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'class'.",
                        "type" : "string",
                        "enum" : [ "class" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ClassSetDType" : {
                "description" : "This is the container for a collection of classes 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" : {
                    "classes" : {
                        "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ClassDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CourseDType" : {
                "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                        "type" : "string"
                    },
                    "schoolYear" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    },
                    "courseCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                        "type" : "string"
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "subjects" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "org" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "subjectCodes" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "resources" : {
                        "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
                "additionalProperties" : false
            },
            "CourseGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'course'.",
                        "type" : "string",
                        "enum" : [ "course" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "CourseSetDType" : {
                "description" : "This is the container for a collection of courses 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" : {
                    "courses" : {
                        "description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/CourseDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CredentialDType" : {
                "description" : "The container for a single set of credentials for an account.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                        "type" : "string"
                    },
                    "username" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The username.",
                        "type" : "string"
                    },
                    "password" : {
                        "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","username" ],
                "additionalProperties" : true
            },
            "DemographicsDType" : {
                "description" : "Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "birthDate" : {
                        "description" : "Model Primitive Datatype = Date. the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "sex" : {
                        "description" : "The sex of the individual. The permitted values are from an enumerated list.",
                        "type" : "string"
                    },
                    "americanIndianOrAlaskaNative" : {
                        "description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "asian" : {
                        "description" : "Identification of whether or not the user is of Asian ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "blackOrAfricanAmerican" : {
                        "description" : "Identification of whether or not the user is black or African American ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "nativeHawaiianOrOtherPacificIslander" : {
                        "description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "white" : {
                        "description" : "Identification of whether or not the user is of white ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "demographicRaceTwoOrMoreRaces" : {
                        "description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "hispanicOrLatinoEthnicity" : {
                        "description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "countryOfBirthCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    },
                    "stateOfBirthAbbreviation" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    },
                    "cityOfBirth" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the city in which the user was born.",
                        "type" : "string"
                    },
                    "publicSchoolResidenceStatus" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "string"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified" ],
                "additionalProperties" : false
            },
            "DemographicsSetDType" : {
                "description" : "This is the container for a collection of demographics 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" : {
                    "demographics" : {
                        "description" : "The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/DemographicsDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "EnrollmentDType" : {
                "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "user" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/definitions/ClassGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "role" : {
                        "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                        "type" : "string"
                    },
                    "primary" : {
                        "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "beginDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                        "type" : "string",
                        "format" : "date"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
                "additionalProperties" : false
            },
            "EnrollmentSetDType" : {
                "description" : "This is the container for a collection of enrollment 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" : {
                    "enrollments" : {
                        "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/EnrollmentDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "MetadataDType" : {
                "description" : "The container for the proprietary extensions.",
                "type" : "object",
                "properties" : {

                },
                "additionalProperties" : true
            },
            "OrgDType" : {
                "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "name" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of organization. This uses a predefined vocabulary.",
                        "type" : "string"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                        "type" : "string"
                    },
                    "parent" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "children" : {
                        "description" : "The 'sourcedIds' for the set of child organizations.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/OrgGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
                "additionalProperties" : false
            },
            "OrgGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'org'.",
                        "type" : "string",
                        "enum" : [ "org" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "OrgSetDType" : {
                "description" : "This is the container for a collection of org 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" : {
                    "orgs" : {
                        "description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/OrgDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ResourceGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'resource'.",
                        "type" : "string",
                        "enum" : [ "resource" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "RoleDType" : {
                "description" : "The container for one mapping between a role and an org for the user.",
                "type" : "object",
                "properties" : {
                    "roleType" : {
                        "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                        "type" : "string",
                        "enum" : [ "primary","secondary" ]
                    },
                    "role" : {
                        "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                        "type" : "string"
                    },
                    "org" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "userProfile" : {
                        "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "beginDate" : {
                        "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                        "type" : "string",
                        "format" : "date"
                    },
                    "endDate" : {
                        "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                        "type" : "string",
                        "format" : "date"
                    }
                },
                "required" : [ "roleType","role","org" ],
                "additionalProperties" : false
            },
            "SingleAcademicSessionDType" : {
                "description" : "This is the container for a single academicSession instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "academicSession" : {
                        "$ref" : "#/definitions/AcademicSessionDType"
                    }
                },
                "required" : [ "academicSession" ],
                "additionalProperties" : false
            },
            "SingleClassDType" : {
                "description" : "This is the container for a single class instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "class" : {
                        "$ref" : "#/definitions/ClassDType"
                    }
                },
                "required" : [ "class" ],
                "additionalProperties" : false
            },
            "SingleCourseDType" : {
                "description" : "This is the container for a single course instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "course" : {
                        "$ref" : "#/definitions/CourseDType"
                    }
                },
                "required" : [ "course" ],
                "additionalProperties" : false
            },
            "SingleDemographicsDType" : {
                "description" : "This is the container for a single demographics instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "demographics" : {
                        "$ref" : "#/definitions/DemographicsDType"
                    }
                },
                "required" : [ "demographics" ],
                "additionalProperties" : false
            },
            "SingleEnrollmentDType" : {
                "description" : "This is the container for a single enrollment instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "enrollment" : {
                        "$ref" : "#/definitions/EnrollmentDType"
                    }
                },
                "required" : [ "enrollment" ],
                "additionalProperties" : false
            },
            "SingleOrgDType" : {
                "description" : "This is the container for a single org instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "org" : {
                        "$ref" : "#/definitions/OrgDType"
                    }
                },
                "required" : [ "org" ],
                "additionalProperties" : false
            },
            "SingleUserDType" : {
                "description" : "This is the container for a single user instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "user" : {
                        "$ref" : "#/definitions/UserDType"
                    }
                },
                "required" : [ "user" ],
                "additionalProperties" : false
            },
            "UserDType" : {
                "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "userMasterIdentifier" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                        "type" : "string"
                    },
                    "username" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                        "type" : "string"
                    },
                    "userIds" : {
                        "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/UserIdDType"
                        }
                    },
                    "enabledUser" : {
                        "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "givenName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                        "type" : "string"
                    },
                    "familyName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                        "type" : "string"
                    },
                    "middleName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                        "type" : "string"
                    },
                    "preferredFirstName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "preferredMiddleName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "preferredLastName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                        "type" : "string"
                    },
                    "pronouns" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                        "type" : "string"
                    },
                    "roles" : {
                        "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/RoleDType"
                        }
                    },
                    "userProfiles" : {
                        "description" : "The set of system/app/tool profiles for the user.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/UserProfileDType"
                        }
                    },
                    "primaryOrg" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                        "type" : "string"
                    },
                    "email" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                        "type" : "string"
                    },
                    "sms" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                        "type" : "string"
                    },
                    "phone" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                        "type" : "string"
                    },
                    "agents" : {
                        "description" : "The links to other people i.e. User 'sourcedIds'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/UserGUIDRefDType"
                        }
                    },
                    "grades" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "password" : {
                        "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                        "type" : "string"
                    },
                    "resources" : {
                        "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ResourceGUIDRefDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
                "additionalProperties" : false
            },
            "UserGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'user'.",
                        "type" : "string",
                        "enum" : [ "user" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "UserIdDType" : {
                "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                        "type" : "string"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. The user identifier.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","identifier" ],
                "additionalProperties" : false
            },
            "UserProfileDType" : {
                "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
                "type" : "object",
                "properties" : {
                    "profileId" : {
                        "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "profileType" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                        "type" : "string"
                    },
                    "vendorId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                        "type" : "string"
                    },
                    "applicationId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                        "type" : "string"
                    },
                    "credentials" : {
                        "description" : "The set of credentials that are available for access to this profile.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/CredentialDType"
                        }
                    }
                },
                "required" : [ "profileId","profileType","vendorId" ],
                "additionalProperties" : false
            },
            "UserSetDType" : {
                "description" : "This is the container for a collection of user 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" : {
                    "users" : {
                        "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/UserDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                    "server_busy","unknownobject","internal_server_error" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMajor" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "success","processing","failure","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "status","warning","error" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_CodeMinor" : {
                        "$ref" : "#/definitions/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "additionalProperties" : false
            }
        }
    }
}
        

B2 Listing of the OpenAPI (YAML) File

B2.1 OpenAPI 2.0 YAML Listing

The OpenAPI 2 (YAML) listing (based upon [OAS, 14]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi2_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Rostering 1.2 service binding in REST/JSON.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 IMS takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on IMS procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/license.html.
# 
#                 Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
# 
#                 The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
#                 NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
#                 ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

swagger: '2.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster OpenAPI (YAML) Definition
    description: The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    termsOfService: Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE  CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER,  DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                   Host, Base Path, Schemes and Content Types                      #
#####################################################################################
host: www.imsglobal.org
basePath: /ims/oneroster/rostering/v1p2
schemes: 
    - http
    - https
consumes: 
    - application/json
produces: 
    - application/json

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AcademicSessionsManagement
      description: |
        This enables the management of academic sessions i.e. periods of academic activity.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses.
    - name: CoursesManagement
      description: |
        This enables the management of Courses i.e. programme of study.
    - name: DemographicsManagement
      description: |
        This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same.
    - name: EnrollmentsManagement
      description: |
        This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools.
    - name: GradingPeriodsManagement
      description: |
        This enables the management of grading periods i.e. specific academic sessions.
    - name: OrgsManagement
      description: |
        This enables the management of orgs i.e. an organization involved in the learning in some form or other.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools. A school is a type of 'org'.
    - name: StudentsManagement
      description: |
        This enables the management of information about students (a student is a type of 'user').
    - name: TeachersManagement
      description: |
        This enables the management of information about teachers (a teacher is a type of 'user').
    - name: TermsManagement
      description: |
        This enables the management of information about terms (a term is a type of 'academicSession').
    - name: UsersManagement
      description: |
        This enables the management of information about users (including students and teachers).

#####################################################################################
#                                 Security                                          #
#####################################################################################
securityDefinitions:
    OAuth2CC:
        type: oauth2
        description: OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
        flow: application
        tokenUrl: https://www.imsglobal.org
        scopes: 
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly: Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained.
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly: The core set of read operations to enable information about collections or a single object to be obtained.
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly: The read operations to provide all demographics or a single demographics object to be obtained.


#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /academicSessions:
        get:
            operationId: getAllAcademicSessions
            summary: The REST read request message for the getAllAcademicSessions() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a collection of academic sessions i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /academicSessions/{sourcedId}:
        get:
            operationId: getAcademicSession
            summary: The REST read request message for the getAcademicSession() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this academic session.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes:
        get:
            operationId: getAllClasses
            summary: The REST read request message for the getAllClasses() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a collection of classes i.e. all classes.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClass
            summary: The REST read request message for the getStudentsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClass
            summary: The REST read request message for the getTeachersForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{sourcedId}:
        get:
            operationId: getClass
            summary: The REST read request message for the getClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this class.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleClassDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses:
        get:
            operationId: getAllCourses
            summary: The REST read request message for the getAllCourses() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a collection of courses i.e. all courses.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses/{courseSourcedId}/classes:
        get:
            operationId: getClassesForCourse
            summary: The REST read request message for the getClassesForCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: courseSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific course.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses/{sourcedId}:
        get:
            operationId: getCourse
            summary: The REST read request message for the getCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this course.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleCourseDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /demographics:
        get:
            operationId: getAllDemographics
            summary: The REST read request message for the getAllDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a collection of demographics i.e. all demographics.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/DemographicsSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /demographics/{sourcedId}:
        get:
            operationId: getDemographics
            summary: The REST read request message for the getDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user demographics.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleDemographicsDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /enrollments:
        get:
            operationId: getAllEnrollments
            summary: The REST read request message for the getAllEnrollments() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a collection of enrollments i.e. all enrollments.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /enrollments/{sourcedId}:
        get:
            operationId: getEnrollment
            summary: The REST read request message for the getEnrollment() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this enrollment.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleEnrollmentDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /gradingPeriods:
        get:
            operationId: getAllGradingPeriods
            summary: The REST read request message for the getAllGradingPeriods() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a collection of grading periods i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /gradingPeriods/{sourcedId}:
        get:
            operationId: getGradingPeriod
            summary: The REST read request message for the getGradingPeriod() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this grading period.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /orgs:
        get:
            operationId: getAllOrgs
            summary: The REST read request message for the getAllOrgs() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a collection of orgs i.e. all orgs.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /orgs/{sourcedId}:
        get:
            operationId: getOrg
            summary: The REST read request message for the getOrg() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this org.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools:
        get:
            operationId: getAllSchools
            summary: The REST read request message for the getAllSchools() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a collection of schools i.e. all schools.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes:
        get:
            operationId: getClassesForSchool
            summary: The REST read request message for the getClassesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForClassInSchool
            summary: The REST read request message for the getEnrollmentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClassInSchool
            summary: The REST read request message for the getStudentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClassInSchool
            summary: The REST read request message for the getTeachersForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/courses:
        get:
            operationId: getCoursesForSchool
            summary: The REST read request message for the getCoursesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForSchool
            summary: The REST read request message for the getEnrollmentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students:
        get:
            operationId: getStudentsForSchool
            summary: The REST read request message for the getStudentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/teachers:
        get:
            operationId: getTeachersForSchool
            summary: The REST read request message for the getTeachersForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/terms:
        get:
            operationId: getTermsForSchool
            summary: The REST read request message for the getTermsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{sourcedId}:
        get:
            operationId: getSchool
            summary: The REST read request message for the getSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this school.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students:
        get:
            operationId: getAllStudents
            summary: The REST read request message for the getAllStudents() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a collection of students i.e. all students.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students/{sourcedId}:
        get:
            operationId: getStudent
            summary: The REST read request message for the getStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this student.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students/{studentSourcedId}/classes:
        get:
            operationId: getClassesForStudent
            summary: The REST read request message for the getClassesForStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific student.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers:
        get:
            operationId: getAllTeachers
            summary: The REST read request message for the getAllTeachers() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a collection of teachers i.e. all teachers.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers/{sourcedId}:
        get:
            operationId: getTeacher
            summary: The REST read request message for the getTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this teacher.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers/{teacherSourcedId}/classes:
        get:
            operationId: getClassesForTeacher
            summary: The REST read request message for the getClassesForTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: teacherSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific teacher.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms:
        get:
            operationId: getAllTerms
            summary: The REST read request message for the getAllTerms() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a collection of terms i.e. all terms.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{sourcedId}:
        get:
            operationId: getTerm
            summary: The REST read request message for the getTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this term.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{termSourcedId}/classes:
        get:
            operationId: getClassesForTerm
            summary: The REST read request message for the getClassesForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{termSourcedId}/gradingPeriods:
        get:
            operationId: getGradingPeriodsForTerm
            summary: The REST read request message for the getGradingPeriodsForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users:
        get:
            operationId: getAllUsers
            summary: The REST read request message for the getAllUsers() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a collection of users i.e. all users (including students and teachers).
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users/{sourcedId}:
        get:
            operationId: getUser
            summary: The REST read request message for the getUser() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users/{userSourcedId}/classes:
        get:
            operationId: getClassesForUser
            summary: The REST read request message for the getClassesForUser() API call.
            tags: 
                - UsersManagement
            description: |
                To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific user.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AcadSessionGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'academicSession'.
                type: string
                enum: 
                   - academicSession
        additionalProperties: false
    AcademicSessionDType:
        description: |
            The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - startDate
            - endDate
            - type
            - schoolYear
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title/label for the academic session. Model Primitive Datatype = NormalizedString.
                type: string
            startDate: 
                description: The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            type: 
                description: |
                    The type of academic session. This is based upon an enumerated vocabulary.
                type: string
            parent: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            children: 
                description: |
                    The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AcadSessionGUIDRefDType"
            schoolYear: 
                description: The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    AcademicSessionSetDType:
        description: |
            This is the container for a collection of academicSessions 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: 
            academicSessions: 
                description: |
                    The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AcademicSessionDType"
        additionalProperties: false
    ClassDType:
        description: |
            A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - course
            - school
            - terms
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The tile/label for the class. Model Primitive Datatype = NormalizedString.
                type: string
            classCode: 
                description: The class code. Model Primitive Datatype = NormalizedString.
                type: string
            classType: 
                description: |
                    The type of class. This is based upon an enumerated vocabulary.
                type: string
            location: 
                description: The location for the class e.g. 'Room 19'. Model Primitive Datatype = NormalizedString.
                type: string
            grades: 
                description: The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            subjects: 
                description: The set of subjects addressed by this class e.g. 'chemistry'. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            course: 
                $ref: "#/definitions/CourseGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            terms: 
                description: |
                    The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/AcadSessionGUIDRefDType"
            subjectCodes: 
                description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            periods: 
                description: The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            resources: 
                description: |
                    The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    ClassGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'class'.
                type: string
                enum: 
                   - class
        additionalProperties: false
    ClassSetDType:
        description: |
            This is the container for a collection of classes 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: 
            classes: 
                description: |
                    The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ClassDType"
        additionalProperties: false
    CourseDType:
        description: |
            The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - courseCode
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title of the course. Model Primitive Datatype = NormalizedString.
                type: string
            schoolYear: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            courseCode: 
                description: The assigned course code. Model Primitive Datatype = NormalizedString.
                type: string
            grades: 
                description: Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            subjects: 
                description: The set of subjects addresse by this course. This is a set of human readable strings.   Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            org: 
                $ref: "#/definitions/OrgGUIDRefDType"
            subjectCodes: 
                description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            resources: 
                description: |
                    The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    CourseGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'course'.
                type: string
                enum: 
                   - course
        additionalProperties: false
    CourseSetDType:
        description: |
            This is the container for a collection of courses 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: 
            courses: 
                description: |
                    The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CourseDType"
        additionalProperties: false
    CredentialDType:
        description: |
            The container for a single set of credentials for an account.
        type: object
        required: 
            - type
            - username
        properties: 
            type: 
                description: The type of credentials for the profile. This should be indicative of when this specific credential should be used. Model Primitive Datatype = String.
                type: string
            username: 
                description: The username. Model Primitive Datatype = NormalizedString.
                type: string
            password: 
                description: The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed. Model Primitive Datatype = String.
                type: string
        additionalProperties: true
    DemographicsDType:
        description: |
            Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            birthDate: 
                description: the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            sex: 
                description: |
                    The sex of the individual. The permitted values are from an enumerated list.
                type: string
            americanIndianOrAlaskaNative: 
                description: |
                    Identification of whether or not the user is an American Indian or Alaska Native ethnicity.
                type: string
                enum: 
                   - true
                   - false
            asian: 
                description: |
                    Identification of whether or not the user is of Asian ethnicity.
                type: string
                enum: 
                   - true
                   - false
            blackOrAfricanAmerican: 
                description: |
                    Identification of whether or not the user is black or African American ethnicity.
                type: string
                enum: 
                   - true
                   - false
            nativeHawaiianOrOtherPacificIslander: 
                description: |
                    Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.
                type: string
                enum: 
                   - true
                   - false
            white: 
                description: |
                    Identification of whether or not the user is of white ethnicity.
                type: string
                enum: 
                   - true
                   - false
            demographicRaceTwoOrMoreRaces: 
                description: |
                    Identification of whether or not the user has a demographic of two or more race ethnicities.
                type: string
                enum: 
                   - true
                   - false
            hispanicOrLatinoEthnicity: 
                description: |
                    Identification of whether or not the user is Hispanic or of Latino ethnicity.
                type: string
                enum: 
                   - true
                   - false
            countryOfBirthCode: 
                description: The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
            stateOfBirthAbbreviation: 
                description: The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
            cityOfBirth: 
                description: The name of the city in which the user was born. Model Primitive Datatype = NormalizedString.
                type: string
            publicSchoolResidenceStatus: 
                description: An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    DemographicsSetDType:
        description: |
            This is the container for a collection of demographics 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: 
            demographics: 
                description: |
                    The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/DemographicsDType"
        additionalProperties: false
    EnrollmentDType:
        description: |
            An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - user
            - class
            - school
            - role
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            user: 
                $ref: "#/definitions/UserGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            role: 
                description: |
                    The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
                type: string
            primary: 
                description: |
                    Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
                type: string
                enum: 
                   - true
                   - false
            beginDate: 
                description: The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
        additionalProperties: false
    EnrollmentSetDType:
        description: |
            This is the container for a collection of enrollment 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: 
            enrollments: 
                description: |
                    The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/EnrollmentDType"
        additionalProperties: false
    MetadataDType:
        description: |
            The container for the proprietary extensions.
        type: object
        properties: {}
        additionalProperties: true
    OrgDType:
        description: |
            ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - name
            - type
            - identifier
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            name: 
                description: The name of the organization. Model Primitive Datatype = NormalizedString.
                type: string
            type: 
                description: |
                    The type of organization. This uses a predefined vocabulary.
                type: string
            identifier: 
                description: Human readable identifier for this org e.g. NCES ID. Model Primitive Datatype = String.
                type: string
            parent: 
                $ref: "#/definitions/OrgGUIDRefDType"
            children: 
                description: |
                    The 'sourcedIds' for the set of child organizations.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/OrgGUIDRefDType"
        additionalProperties: false
    OrgGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'org'.
                type: string
                enum: 
                   - org
        additionalProperties: false
    OrgSetDType:
        description: |
            This is the container for a collection of org 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: 
            orgs: 
                description: |
                    The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/OrgDType"
        additionalProperties: false
    ResourceGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'resource'.
                type: string
                enum: 
                   - resource
        additionalProperties: false
    RoleDType:
        description: |
            The container for one mapping between a role and an org for the user.
        type: object
        required: 
            - roleType
            - role
            - org
        properties: 
            roleType: 
                description: |
                    Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                type: string
                enum: 
                   - primary
                   - secondary
            role: 
                description: |
                    The role of the user in the org. The permitted values are from an enumerated list. 
                type: string
            org: 
                $ref: "#/definitions/OrgGUIDRefDType"
            userProfile: 
                description: The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            beginDate: 
                description: The start date on which the role becomes active (inclusive).  Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date on which the role becomes inactive (exclusive).  Model Primitive Datatype = Date.
                type: string
                format: date
        additionalProperties: false
    SingleAcademicSessionDType:
        description: |
            This is the container for a single academicSession instance for a message payload.
        type: object
        required: 
            - academicSession
        properties: 
            academicSession: 
                $ref: "#/definitions/AcademicSessionDType"
        additionalProperties: false
    SingleClassDType:
        description: |
            This is the container for a single class instance for a message payload.
        type: object
        required: 
            - class
        properties: 
            class: 
                $ref: "#/definitions/ClassDType"
        additionalProperties: false
    SingleCourseDType:
        description: |
            This is the container for a single course instance for a message payload.
        type: object
        required: 
            - course
        properties: 
            course: 
                $ref: "#/definitions/CourseDType"
        additionalProperties: false
    SingleDemographicsDType:
        description: |
            This is the container for a single demographics instance for a message payload.
        type: object
        required: 
            - demographics
        properties: 
            demographics: 
                $ref: "#/definitions/DemographicsDType"
        additionalProperties: false
    SingleEnrollmentDType:
        description: |
            This is the container for a single enrollment instance for a message payload.
        type: object
        required: 
            - enrollment
        properties: 
            enrollment: 
                $ref: "#/definitions/EnrollmentDType"
        additionalProperties: false
    SingleOrgDType:
        description: |
            This is the container for a single org instance for a message payload.
        type: object
        required: 
            - org
        properties: 
            org: 
                $ref: "#/definitions/OrgDType"
        additionalProperties: false
    SingleUserDType:
        description: |
            This is the container for a single user instance for a message payload.
        type: object
        required: 
            - user
        properties: 
            user: 
                $ref: "#/definitions/UserDType"
        additionalProperties: false
    UserDType:
        description: |
            Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - enabledUser
            - givenName
            - familyName
            - roles
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            userMasterIdentifier: 
                description: The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification. Model Primitive Datatype = NormalizedString.
                type: string
            username: 
                description: The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead. Model Primitive Datatype = NormalizedString.
                type: string
            userIds: 
                description: |
                    The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserIdDType"
            enabledUser: 
                description: |
                    This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
                type: string
                enum: 
                   - true
                   - false
            givenName: 
                description: The given name. Also, known as the first name. Model Primitive Datatype = NormalizedString.
                type: string
            familyName: 
                description: The family name. Also, known as the last name. Model Primitive Datatype = NormalizedString.
                type: string
            middleName: 
                description: The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'. Model Primitive Datatype = NormalizedString.
                type: string
            preferredFirstName: 
                description: The user's preferred first name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            preferredMiddleName: 
                description: The user's preferred middle name(s). This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            preferredLastName: 
                description: The user's preferred last name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            pronouns: 
                description: The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun. Model Primitive Datatype = NormalizedString.
                type: string
            roles: 
                description: |
                    The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/RoleDType"
            userProfiles: 
                description: |
                    The set of system/app/tool profiles for the user.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserProfileDType"
            primaryOrg: 
                $ref: "#/definitions/OrgGUIDRefDType"
            identifier: 
                description: An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead. Model Primitive Datatype = String.
                type: string
            email: 
                description: The email address for the user. Model Primitive Datatype = NormalizedString.
                type: string
            sms: 
                description: The SMS number for the user. Model Primitive Datatype = NormalizedString.
                type: string
            phone: 
                description: The phone number for the user. Model Primitive Datatype = NormalizedString.
                type: string
            agents: 
                description: |
                    The links to other people i.e. User 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserGUIDRefDType"
            grades: 
                description: Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            password: 
                description: A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted. Model Primitive Datatype = String.
                type: string
            resources: 
                description: |
                    The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    UserGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'user'.
                type: string
                enum: 
                   - user
        additionalProperties: false
    UserIdDType:
        description: |
            This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
        type: object
        required: 
            - type
            - identifier
        properties: 
            type: 
                description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                type: string
            identifier: 
                description: The user identifier. Model Primitive Datatype = String.
                type: string
        additionalProperties: false
    UserProfileDType:
        description: |
            The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.
        type: object
        required: 
            - profileId
            - profileType
            - vendorId
        properties: 
            profileId: 
                description: The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            profileType: 
                description: The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc. Model Primitive Datatype = NormalizedString.
                type: string
            vendorId: 
                description: The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile. Model Primitive Datatype = NormalizedString.
                type: string
            applicationId: 
                description: Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the use of the profile. This should not contain any security information for access to the account. Model Primitive Datatype = String.
                type: string
            credentials: 
                description: |
                    The set of credentials that are available for access to this profile.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CredentialDType"
        additionalProperties: false
    UserSetDType:
        description: |
            This is the container for a collection of user 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: 
            users: 
                description: |
                    The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserDType"
        additionalProperties: false
    imsx_CodeMinorDType:
        description: |
            This is the container for the set of code minor status codes reported in the responses from the Service Provider.
        type: object
        required: 
            - imsx_codeMinorField
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - invalid_filter_field
                   - invalid_selection_field
                   - invaliddata
                   - unauthorisedrequest
                   - forbidden
                   - server_busy
                   - unknownobject
                   - internal_server_error
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
        type: object
        required: 
            - imsx_codeMajor
            - imsx_severity
        properties: 
            imsx_codeMajor: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_CodeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

B2.2 OpenAPI 3.0 YAML Listing

The OpenAPI 3 (YAML) listing (based upon [OAS, 17]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi3_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Rostering 1.2 service binding in REST/JSON.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 IMS takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on IMS procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/license.html.
# 
#                 Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
# 
#                 The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
#                 NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
#                 ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster OpenAPI (YAML) Definition
    description: The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    termsOfService: https://www.imsglobal.org/license.html
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.imsglobal.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/oneroster/rostering/v1p2
              default: /ims/oneroster/rostering/v1p2

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AcademicSessionsManagement
      description: |
        This enables the management of academic sessions i.e. periods of academic activity.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses.
    - name: CoursesManagement
      description: |
        This enables the management of Courses i.e. programme of study.
    - name: DemographicsManagement
      description: |
        This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same.
    - name: EnrollmentsManagement
      description: |
        This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools.
    - name: GradingPeriodsManagement
      description: |
        This enables the management of grading periods i.e. specific academic sessions.
    - name: OrgsManagement
      description: |
        This enables the management of orgs i.e. an organization involved in the learning in some form or other.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools. A school is a type of 'org'.
    - name: StudentsManagement
      description: |
        This enables the management of information about students (a student is a type of 'user').
    - name: TeachersManagement
      description: |
        This enables the management of information about teachers (a teacher is a type of 'user').
    - name: TermsManagement
      description: |
        This enables the management of information about terms (a term is a type of 'academicSession').
    - name: UsersManagement
      description: |
        This enables the management of information about users (including students and teachers).

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /academicSessions:
        get:
            operationId: getAllAcademicSessions
            summary: The REST read request message for the getAllAcademicSessions() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a collection of academic sessions i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /academicSessions/{sourcedId}:
        get:
            operationId: getAcademicSession
            summary: The REST read request message for the getAcademicSession() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this academic session.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes:
        get:
            operationId: getAllClasses
            summary: The REST read request message for the getAllClasses() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a collection of classes i.e. all classes.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllClasses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllClasses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllClasses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllClasses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClass
            summary: The REST read request message for the getStudentsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getStudentsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getStudentsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClass
            summary: The REST read request message for the getTeachersForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getTeachersForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeachersForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeachersForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getTeachersForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{sourcedId}:
        get:
            operationId: getClass
            summary: The REST read request message for the getClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleClassDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /courses:
        get:
            operationId: getAllCourses
            summary: The REST read request message for the getAllCourses() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a collection of courses i.e. all courses.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCourses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCourses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCourses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCourses
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /courses/{courseSourcedId}/classes:
        get:
            operationId: getClassesForCourse
            summary: The REST read request message for the getClassesForCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: courseSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific course.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForCourse
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForCourse
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForCourse
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForCourse
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /courses/{sourcedId}:
        get:
            operationId: getCourse
            summary: The REST read request message for the getCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this course.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleCourseDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /demographics:
        get:
            operationId: getAllDemographics
            summary: The REST read request message for the getAllDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a collection of demographics i.e. all demographics.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/DemographicsSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllDemographics
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllDemographics
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllDemographics
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllDemographics
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /demographics/{sourcedId}:
        get:
            operationId: getDemographics
            summary: The REST read request message for the getDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user demographics.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleDemographicsDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /enrollments:
        get:
            operationId: getAllEnrollments
            summary: The REST read request message for the getAllEnrollments() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a collection of enrollments i.e. all enrollments.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /enrollments/{sourcedId}:
        get:
            operationId: getEnrollment
            summary: The REST read request message for the getEnrollment() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this enrollment.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleEnrollmentDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /gradingPeriods:
        get:
            operationId: getAllGradingPeriods
            summary: The REST read request message for the getAllGradingPeriods() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a collection of grading periods i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllGradingPeriods
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllGradingPeriods
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllGradingPeriods
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllGradingPeriods
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /gradingPeriods/{sourcedId}:
        get:
            operationId: getGradingPeriod
            summary: The REST read request message for the getGradingPeriod() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this grading period.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /orgs:
        get:
            operationId: getAllOrgs
            summary: The REST read request message for the getAllOrgs() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a collection of orgs i.e. all orgs.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /orgs/{sourcedId}:
        get:
            operationId: getOrg
            summary: The REST read request message for the getOrg() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this org.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools:
        get:
            operationId: getAllSchools
            summary: The REST read request message for the getAllSchools() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a collection of schools i.e. all schools.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes:
        get:
            operationId: getClassesForSchool
            summary: The REST read request message for the getClassesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForClassInSchool
            summary: The REST read request message for the getEnrollmentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClassInSchool
            summary: The REST read request message for the getStudentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getStudentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getStudentsForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClassInSchool
            summary: The REST read request message for the getTeachersForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getTeachersForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeachersForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeachersForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getTeachersForClassInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/courses:
        get:
            operationId: getCoursesForSchool
            summary: The REST read request message for the getCoursesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getCoursesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getCoursesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getCoursesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getCoursesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForSchool
            summary: The REST read request message for the getEnrollmentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students:
        get:
            operationId: getStudentsForSchool
            summary: The REST read request message for the getStudentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getStudentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getStudentsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/teachers:
        get:
            operationId: getTeachersForSchool
            summary: The REST read request message for the getTeachersForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getTeachersForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeachersForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeachersForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getTeachersForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/terms:
        get:
            operationId: getTermsForSchool
            summary: The REST read request message for the getTermsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getTermsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTermsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTermsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getTermsForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{sourcedId}:
        get:
            operationId: getSchool
            summary: The REST read request message for the getSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /students:
        get:
            operationId: getAllStudents
            summary: The REST read request message for the getAllStudents() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a collection of students i.e. all students.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllStudents
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllStudents
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllStudents
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllStudents
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /students/{sourcedId}:
        get:
            operationId: getStudent
            summary: The REST read request message for the getStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /students/{studentSourcedId}/classes:
        get:
            operationId: getClassesForStudent
            summary: The REST read request message for the getClassesForStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForStudent
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForStudent
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForStudent
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForStudent
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /teachers:
        get:
            operationId: getAllTeachers
            summary: The REST read request message for the getAllTeachers() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a collection of teachers i.e. all teachers.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllTeachers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllTeachers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllTeachers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllTeachers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /teachers/{sourcedId}:
        get:
            operationId: getTeacher
            summary: The REST read request message for the getTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this teacher.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /teachers/{teacherSourcedId}/classes:
        get:
            operationId: getClassesForTeacher
            summary: The REST read request message for the getClassesForTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: teacherSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific teacher.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForTeacher
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForTeacher
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForTeacher
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForTeacher
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /terms:
        get:
            operationId: getAllTerms
            summary: The REST read request message for the getAllTerms() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a collection of terms i.e. all terms.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllTerms
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllTerms
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllTerms
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllTerms
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /terms/{sourcedId}:
        get:
            operationId: getTerm
            summary: The REST read request message for the getTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this term.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /terms/{termSourcedId}/classes:
        get:
            operationId: getClassesForTerm
            summary: The REST read request message for the getClassesForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /terms/{termSourcedId}/gradingPeriods:
        get:
            operationId: getGradingPeriodsForTerm
            summary: The REST read request message for the getGradingPeriodsForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getGradingPeriodsForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getGradingPeriodsForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getGradingPeriodsForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getGradingPeriodsForTerm
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /users:
        get:
            operationId: getAllUsers
            summary: The REST read request message for the getAllUsers() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a collection of users i.e. all users (including students and teachers).
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllUsers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllUsers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllUsers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllUsers
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /users/{sourcedId}:
        get:
            operationId: getUser
            summary: The REST read request message for the getUser() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /users/{userSourcedId}/classes:
        get:
            operationId: getClassesForUser
            summary: The REST read request message for the getClassesForUser() API call.
            tags: 
                - UsersManagement
            description: |
                To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getClassesForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassesForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassesForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getClassesForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"


#####################################################################################
#                               Components                                          #
#####################################################################################
components:
    securitySchemes:
        OAuth2CC:
            type: oauth2
            description: |
                OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
            flows:
                clientCredentials:
                    tokenUrl: https://www.imsglobal.org
                    scopes: 
                        https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly: Support for all of the read operations (excluding demographics) to enable information about collections or a single object to be obtained.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly: The core set of read operations to enable information about collections or a single object to be obtained.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly: The read operations to provide all demographics or a single demographics object to be obtained.
    schemas: 
        AcadSessionGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'academicSession'.
                    type: string
                    enum: 
                       - academicSession
            additionalProperties: false
        AcademicSessionDType:
            description: |
                The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. 
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
                - startDate
                - endDate
                - type
                - schoolYear
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The title/label for the academic session. Model Primitive Datatype = NormalizedString.
                    type: string
                startDate: 
                    description: The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                    type: string
                    format: date
                endDate: 
                    description: The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                    type: string
                    format: date
                type: 
                    description: |
                        The type of academic session. This is based upon an enumerated vocabulary.
                    anyOf: 
                            - enum: 
                                - gradingPeriod
                                - semester
                                - schoolYear
                                - term
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                parent: 
                    $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                children: 
                    description: |
                        The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                schoolYear: 
                    description: The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'. Model Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        AcademicSessionSetDType:
            description: |
                This is the container for a collection of academicSessions 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: 
                academicSessions: 
                    description: |
                        The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AcademicSessionDType"
            additionalProperties: false
        ClassDType:
            description: |
                A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
                - course
                - school
                - terms
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The tile/label for the class. Model Primitive Datatype = NormalizedString.
                    type: string
                classCode: 
                    description: The class code. Model Primitive Datatype = NormalizedString.
                    type: string
                classType: 
                    description: |
                        The type of class. This is based upon an enumerated vocabulary.
                    anyOf: 
                            - enum: 
                                - homeroom
                                - scheduled
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                location: 
                    description: The location for the class e.g. 'Room 19'. Model Primitive Datatype = NormalizedString.
                    type: string
                grades: 
                    description: The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                subjects: 
                    description: The set of subjects addressed by this class e.g. 'chemistry'. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                course: 
                    $ref: "#/components/schemas/CourseGUIDRefDType"
                school: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                terms: 
                    description: |
                        The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                subjectCodes: 
                    description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                periods: 
                    description: The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                resources: 
                    description: |
                        The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ResourceGUIDRefDType"
            additionalProperties: false
        ClassGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'class'.
                    type: string
                    enum: 
                       - class
            additionalProperties: false
        ClassSetDType:
            description: |
                This is the container for a collection of classes 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: 
                classes: 
                    description: |
                        The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ClassDType"
            additionalProperties: false
        CourseDType:
            description: |
                The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
                - courseCode
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The title of the course. Model Primitive Datatype = NormalizedString.
                    type: string
                schoolYear: 
                    $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                courseCode: 
                    description: The assigned course code. Model Primitive Datatype = NormalizedString.
                    type: string
                grades: 
                    description: Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                subjects: 
                    description: The set of subjects addresse by this course. This is a set of human readable strings.   Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                org: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                subjectCodes: 
                    description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                resources: 
                    description: |
                        The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ResourceGUIDRefDType"
            additionalProperties: false
        CourseGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'course'.
                    type: string
                    enum: 
                       - course
            additionalProperties: false
        CourseSetDType:
            description: |
                This is the container for a collection of courses 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: 
                courses: 
                    description: |
                        The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/CourseDType"
            additionalProperties: false
        CredentialDType:
            description: |
                The container for a single set of credentials for an account.
            type: object
            required: 
                - type
                - username
            properties: 
                type: 
                    description: The type of credentials for the profile. This should be indicative of when this specific credential should be used. Model Primitive Datatype = String.
                    type: string
                username: 
                    description: The username. Model Primitive Datatype = NormalizedString.
                    type: string
                password: 
                    description: The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed. Model Primitive Datatype = String.
                    type: string
            additionalProperties: true
        DemographicsDType:
            description: |
                Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                birthDate: 
                    description: the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                    type: string
                    format: date
                sex: 
                    description: |
                        The sex of the individual. The permitted values are from an enumerated list.
                    anyOf: 
                            - enum: 
                                - male
                                - female
                                - unspecified
                                - other
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                americanIndianOrAlaskaNative: 
                    description: |
                        Identification of whether or not the user is an American Indian or Alaska Native ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                asian: 
                    description: |
                        Identification of whether or not the user is of Asian ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                blackOrAfricanAmerican: 
                    description: |
                        Identification of whether or not the user is black or African American ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                nativeHawaiianOrOtherPacificIslander: 
                    description: |
                        Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                white: 
                    description: |
                        Identification of whether or not the user is of white ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                demographicRaceTwoOrMoreRaces: 
                    description: |
                        Identification of whether or not the user has a demographic of two or more race ethnicities.
                    type: string
                    enum: 
                       - true
                       - false
                hispanicOrLatinoEthnicity: 
                    description: |
                        Identification of whether or not the user is Hispanic or of Latino ethnicity.
                    type: string
                    enum: 
                       - true
                       - false
                countryOfBirthCode: 
                    description: The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: string
                stateOfBirthAbbreviation: 
                    description: The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: string
                cityOfBirth: 
                    description: The name of the city in which the user was born. Model Primitive Datatype = NormalizedString.
                    type: string
                publicSchoolResidenceStatus: 
                    description: An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        DemographicsSetDType:
            description: |
                This is the container for a collection of demographics 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: 
                demographics: 
                    description: |
                        The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/DemographicsDType"
            additionalProperties: false
        EnrollmentDType:
            description: |
                An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - user
                - class
                - school
                - role
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                user: 
                    $ref: "#/components/schemas/UserGUIDRefDType"
                class: 
                    $ref: "#/components/schemas/ClassGUIDRefDType"
                school: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                role: 
                    description: |
                        The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
                    anyOf: 
                            - enum: 
                                - administrator
                                - proctor
                                - student
                                - teacher
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                primary: 
                    description: |
                        Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
                    type: string
                    enum: 
                       - true
                       - false
                beginDate: 
                    description: The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                    type: string
                    format: date
                endDate: 
                    description: The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                    type: string
                    format: date
            additionalProperties: false
        EnrollmentSetDType:
            description: |
                This is the container for a collection of enrollment 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: 
                enrollments: 
                    description: |
                        The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/EnrollmentDType"
            additionalProperties: false
        MetadataDType:
            description: |
                The container for the proprietary extensions.
            type: object
            properties: {}
            additionalProperties: true
        OrgDType:
            description: |
                ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - name
                - type
                - identifier
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                name: 
                    description: The name of the organization. Model Primitive Datatype = NormalizedString.
                    type: string
                type: 
                    description: |
                        The type of organization. This uses a predefined vocabulary.
                    anyOf: 
                            - enum: 
                                - department
                                - district
                                - local
                                - national
                                - school
                                - state
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                identifier: 
                    description: Human readable identifier for this org e.g. NCES ID. Model Primitive Datatype = String.
                    type: string
                parent: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                children: 
                    description: |
                        The 'sourcedIds' for the set of child organizations.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/OrgGUIDRefDType"
            additionalProperties: false
        OrgGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'org'.
                    type: string
                    enum: 
                       - org
            additionalProperties: false
        OrgSetDType:
            description: |
                This is the container for a collection of org 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: 
                orgs: 
                    description: |
                        The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/OrgDType"
            additionalProperties: false
        ResourceGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'resource'.
                    type: string
                    enum: 
                       - resource
            additionalProperties: false
        RoleDType:
            description: |
                The container for one mapping between a role and an org for the user.
            type: object
            required: 
                - roleType
                - role
                - org
            properties: 
                roleType: 
                    description: |
                        Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                    type: string
                    enum: 
                       - primary
                       - secondary
                role: 
                    description: |
                        The role of the user in the org. The permitted values are from an enumerated list. 
                    anyOf: 
                            - enum: 
                                - aide
                                - counselor
                                - districtAdministrator
                                - guardian
                                - parent
                                - principal
                                - proctor
                                - relative
                                - siteAdministrator
                                - student
                                - systemAdministrator
                                - teacher
                              type: string
                            - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                org: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                userProfile: 
                    description: The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                beginDate: 
                    description: The start date on which the role becomes active (inclusive).  Model Primitive Datatype = Date.
                    type: string
                    format: date
                endDate: 
                    description: The end date on which the role becomes inactive (exclusive).  Model Primitive Datatype = Date.
                    type: string
                    format: date
            additionalProperties: false
        SingleAcademicSessionDType:
            description: |
                This is the container for a single academicSession instance for a message payload.
            type: object
            required: 
                - academicSession
            properties: 
                academicSession: 
                    $ref: "#/components/schemas/AcademicSessionDType"
            additionalProperties: false
        SingleClassDType:
            description: |
                This is the container for a single class instance for a message payload.
            type: object
            required: 
                - class
            properties: 
                class: 
                    $ref: "#/components/schemas/ClassDType"
            additionalProperties: false
        SingleCourseDType:
            description: |
                This is the container for a single course instance for a message payload.
            type: object
            required: 
                - course
            properties: 
                course: 
                    $ref: "#/components/schemas/CourseDType"
            additionalProperties: false
        SingleDemographicsDType:
            description: |
                This is the container for a single demographics instance for a message payload.
            type: object
            required: 
                - demographics
            properties: 
                demographics: 
                    $ref: "#/components/schemas/DemographicsDType"
            additionalProperties: false
        SingleEnrollmentDType:
            description: |
                This is the container for a single enrollment instance for a message payload.
            type: object
            required: 
                - enrollment
            properties: 
                enrollment: 
                    $ref: "#/components/schemas/EnrollmentDType"
            additionalProperties: false
        SingleOrgDType:
            description: |
                This is the container for a single org instance for a message payload.
            type: object
            required: 
                - org
            properties: 
                org: 
                    $ref: "#/components/schemas/OrgDType"
            additionalProperties: false
        SingleUserDType:
            description: |
                This is the container for a single user instance for a message payload.
            type: object
            required: 
                - user
            properties: 
                user: 
                    $ref: "#/components/schemas/UserDType"
            additionalProperties: false
        UserDType:
            description: |
                Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. 
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - enabledUser
                - givenName
                - familyName
                - roles
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                userMasterIdentifier: 
                    description: The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification. Model Primitive Datatype = NormalizedString.
                    type: string
                username: 
                    description: The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead. Model Primitive Datatype = NormalizedString.
                    type: string
                userIds: 
                    description: |
                        The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/UserIdDType"
                enabledUser: 
                    description: |
                        This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
                    type: string
                    enum: 
                       - true
                       - false
                givenName: 
                    description: The given name. Also, known as the first name. Model Primitive Datatype = NormalizedString.
                    type: string
                familyName: 
                    description: The family name. Also, known as the last name. Model Primitive Datatype = NormalizedString.
                    type: string
                middleName: 
                    description: The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'. Model Primitive Datatype = NormalizedString.
                    type: string
                preferredFirstName: 
                    description: The user's preferred first name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                    type: string
                preferredMiddleName: 
                    description: The user's preferred middle name(s). This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                    type: string
                preferredLastName: 
                    description: The user's preferred last name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                    type: string
                pronouns: 
                    description: The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun. Model Primitive Datatype = NormalizedString.
                    type: string
                roles: 
                    description: |
                        The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/RoleDType"
                userProfiles: 
                    description: |
                        The set of system/app/tool profiles for the user.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/UserProfileDType"
                primaryOrg: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                identifier: 
                    description: An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead. Model Primitive Datatype = String.
                    type: string
                email: 
                    description: The email address for the user. Model Primitive Datatype = NormalizedString.
                    type: string
                sms: 
                    description: The SMS number for the user. Model Primitive Datatype = NormalizedString.
                    type: string
                phone: 
                    description: The phone number for the user. Model Primitive Datatype = NormalizedString.
                    type: string
                agents: 
                    description: |
                        The links to other people i.e. User 'sourcedIds'.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/UserGUIDRefDType"
                grades: 
                    description: Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                password: 
                    description: A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted. Model Primitive Datatype = String.
                    type: string
                resources: 
                    description: |
                        The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ResourceGUIDRefDType"
            additionalProperties: false
        UserGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'user'.
                    type: string
                    enum: 
                       - user
            additionalProperties: false
        UserIdDType:
            description: |
                This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
            type: object
            required: 
                - type
                - identifier
            properties: 
                type: 
                    description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                    type: string
                identifier: 
                    description: The user identifier. Model Primitive Datatype = String.
                    type: string
            additionalProperties: false
        UserProfileDType:
            description: |
                The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.
            type: object
            required: 
                - profileId
                - profileType
                - vendorId
            properties: 
                profileId: 
                    description: The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                profileType: 
                    description: The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc. Model Primitive Datatype = NormalizedString.
                    type: string
                vendorId: 
                    description: The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile. Model Primitive Datatype = NormalizedString.
                    type: string
                applicationId: 
                    description: Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor. Model Primitive Datatype = NormalizedString.
                    type: string
                description: 
                    description: A human readable description of the use of the profile. This should not contain any security information for access to the account. Model Primitive Datatype = String.
                    type: string
                credentials: 
                    description: |
                        The set of credentials that are available for access to this profile.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/CredentialDType"
            additionalProperties: false
        UserSetDType:
            description: |
                This is the container for a collection of user 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: 
                users: 
                    description: |
                        The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/UserDType"
            additionalProperties: false
        imsx_CodeMinorDType:
            description: |
                This is the container for the set of code minor status codes reported in the responses from the Service Provider.
            type: object
            required: 
                - imsx_codeMinorField
            properties: 
                imsx_codeMinorField: 
                    description: |
                        Each reported code minor status code.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/imsx_CodeMinorFieldDType"
            additionalProperties: false
        imsx_CodeMinorFieldDType:
            description: |
                This is the container for a single code minor status code.
            type: object
            required: 
                - imsx_codeMinorFieldName
                - imsx_codeMinorFieldValue
            properties: 
                imsx_codeMinorFieldName: 
                    description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                    type: string
                    default: TargetEndSystem
                imsx_codeMinorFieldValue: 
                    description: |
                        The code minor status code (this is a value from the corresponding enumerated vocabulary).
                    type: string
                    enum: 
                       - fullsuccess
                       - invalid_filter_field
                       - invalid_selection_field
                       - invaliddata
                       - unauthorisedrequest
                       - forbidden
                       - server_busy
                       - unknownobject
                       - internal_server_error
            additionalProperties: false
        imsx_StatusInfoDType:
            description: |
                This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
            type: object
            required: 
                - imsx_codeMajor
                - imsx_severity
            properties: 
                imsx_codeMajor: 
                    description: |
                        The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                    type: string
                    enum: 
                       - success
                       - processing
                       - failure
                       - unsupported
                imsx_severity: 
                    description: |
                        The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                    type: string
                    enum: 
                       - status
                       - warning
                       - error
                imsx_description: 
                    description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                    type: string
                imsx_CodeMinor: 
                    $ref: "#/components/schemas/imsx_CodeMinorDType"
            additionalProperties: false
        

B2.3 OpenAPI 3.1 YAML Listing

The OpenAPI 3.1 (YAML) listing (based upon [OAS, 21]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_openapi3p1_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Rostering 1.2 service binding in REST/JSON.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 IMS takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on IMS procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/license.html.
# 
#                 Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
# 
#                 The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
#                 NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
#                 ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

openapi: '3.1.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster OpenAPI (YAML) Definition
    description: The OneRoster Rostering 1.2 service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    termsOfService: Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE  CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER,  DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.imsglobal.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/oneroster/rostering/v1p2
              default: /ims/oneroster/rostering/v1p2

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AcademicSessionsManagement
      description: |
        This enables the management of academic sessions i.e. periods of academic activity.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses.
    - name: CoursesManagement
      description: |
        This enables the management of Courses i.e. programme of study.
    - name: DemographicsManagement
      description: |
        This enables the management of demographics information (each assigned to a specific user). The sourcedIds for the user and the demograohics records should be the same.
    - name: EnrollmentsManagement
      description: |
        This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools.
    - name: GradingPeriodsManagement
      description: |
        This enables the management of grading periods i.e. specific academic sessions.
    - name: OrgsManagement
      description: |
        This enables the management of orgs i.e. an organization involved in the learning in some form or other.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools. A school is a type of 'org'.
    - name: StudentsManagement
      description: |
        This enables the management of information about students (a student is a type of 'user').
    - name: TeachersManagement
      description: |
        This enables the management of information about teachers (a teacher is a type of 'user').
    - name: TermsManagement
      description: |
        This enables the management of information about terms (a term is a type of 'academicSession').
    - name: UsersManagement
      description: |
        This enables the management of information about users (including students and teachers).

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /academicSessions:
        get:
            operationId: getAllAcademicSessions
            summary: The REST read request message for the getAllAcademicSessions() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a collection of academic sessions i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /academicSessions/{sourcedId}:
        get:
            operationId: getAcademicSession
            summary: The REST read request message for the getAcademicSession() API call.
            tags: 
                - AcademicSessionsManagement
            description: |
                To read, get, a specific academic session. If the specified academic session cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this academic session.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes:
        get:
            operationId: getAllClasses
            summary: The REST read request message for the getAllClasses() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a collection of classes i.e. all classes.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClass
            summary: The REST read request message for the getStudentsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of students associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClass
            summary: The REST read request message for the getTeachersForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, the collection of teachers associated with a specific class. If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /classes/{sourcedId}:
        get:
            operationId: getClass
            summary: The REST read request message for the getClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To read, get, a specific class.  If the specified class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this class.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleClassDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses:
        get:
            operationId: getAllCourses
            summary: The REST read request message for the getAllCourses() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a collection of courses i.e. all courses.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses/{courseSourcedId}/classes:
        get:
            operationId: getClassesForCourse
            summary: The REST read request message for the getClassesForCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To get the set of classes related to a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: courseSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific course.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /courses/{sourcedId}:
        get:
            operationId: getCourse
            summary: The REST read request message for the getCourse() API call.
            tags: 
                - CoursesManagement
            description: |
                To read, get, a specific course.  If the specified course cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this course.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleCourseDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /demographics:
        get:
            operationId: getAllDemographics
            summary: The REST read request message for the getAllDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a collection of demographics i.e. all demographics.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/DemographicsSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /demographics/{sourcedId}:
        get:
            operationId: getDemographics
            summary: The REST read request message for the getDemographics() API call.
            tags: 
                - DemographicsManagement
            description: |
                To read, get, a specific user demographics. If the specified user and/or demographics recrds cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user demographics.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleDemographicsDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /enrollments:
        get:
            operationId: getAllEnrollments
            summary: The REST read request message for the getAllEnrollments() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a collection of enrollments i.e. all enrollments.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /enrollments/{sourcedId}:
        get:
            operationId: getEnrollment
            summary: The REST read request message for the getEnrollment() API call.
            tags: 
                - EnrollmentsManagement
            description: |
                To read, get, a specific enrollment. If the specified enrollment cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this enrollment.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleEnrollmentDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /gradingPeriods:
        get:
            operationId: getAllGradingPeriods
            summary: The REST read request message for the getAllGradingPeriods() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a collection of grading periods i.e. all academic sessions.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /gradingPeriods/{sourcedId}:
        get:
            operationId: getGradingPeriod
            summary: The REST read request message for the getGradingPeriod() API call.
            tags: 
                - GradingPeriodsManagement
            description: |
                To read, get, a specific grading period. If the specified grading period cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this grading period.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /orgs:
        get:
            operationId: getAllOrgs
            summary: The REST read request message for the getAllOrgs() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a collection of orgs i.e. all orgs.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /orgs/{sourcedId}:
        get:
            operationId: getOrg
            summary: The REST read request message for the getOrg() API call.
            tags: 
                - OrgsManagement
            description: |
                To read, get, a specific org. If the specified org cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this org.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools:
        get:
            operationId: getAllSchools
            summary: The REST read request message for the getAllSchools() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a collection of schools i.e. all schools.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes:
        get:
            operationId: getClassesForSchool
            summary: The REST read request message for the getClassesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of classes associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForClassInSchool
            summary: The REST read request message for the getEnrollmentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/students:
        get:
            operationId: getStudentsForClassInSchool
            summary: The REST read request message for the getStudentsForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers:
        get:
            operationId: getTeachersForClassInSchool
            summary: The REST read request message for the getTeachersForClassInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific class at a specific school. If the specified school and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/courses:
        get:
            operationId: getCoursesForSchool
            summary: The REST read request message for the getCoursesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of courses associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CourseSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/enrollments:
        get:
            operationId: getEnrollmentsForSchool
            summary: The REST read request message for the getEnrollmentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of enrollments associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students:
        get:
            operationId: getStudentsForSchool
            summary: The REST read request message for the getStudentsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of students associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/teachers:
        get:
            operationId: getTeachersForSchool
            summary: The REST read request message for the getTeachersForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of teachers associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/terms:
        get:
            operationId: getTermsForSchool
            summary: The REST read request message for the getTermsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, the collection of terms associated with a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /schools/{sourcedId}:
        get:
            operationId: getSchool
            summary: The REST read request message for the getSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read, get, a specific school. If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this school.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleOrgDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students:
        get:
            operationId: getAllStudents
            summary: The REST read request message for the getAllStudents() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a collection of students i.e. all students.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students/{sourcedId}:
        get:
            operationId: getStudent
            summary: The REST read request message for the getStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To read, get, a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this student.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /students/{studentSourcedId}/classes:
        get:
            operationId: getClassesForStudent
            summary: The REST read request message for the getClassesForStudent() API call.
            tags: 
                - StudentsManagement
            description: |
                To get the set of classes related to a specific student. If the specified student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific student.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers:
        get:
            operationId: getAllTeachers
            summary: The REST read request message for the getAllTeachers() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a collection of teachers i.e. all teachers.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers/{sourcedId}:
        get:
            operationId: getTeacher
            summary: The REST read request message for the getTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To read, get, a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this teacher.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /teachers/{teacherSourcedId}/classes:
        get:
            operationId: getClassesForTeacher
            summary: The REST read request message for the getClassesForTeacher() API call.
            tags: 
                - TeachersManagement
            description: |
                To get the set of classes related to a specific teacher. If the specified teacher cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: teacherSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific teacher.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms:
        get:
            operationId: getAllTerms
            summary: The REST read request message for the getAllTerms() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a collection of terms i.e. all terms.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{sourcedId}:
        get:
            operationId: getTerm
            summary: The REST read request message for the getTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To read, get, a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this term.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAcademicSessionDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{termSourcedId}/classes:
        get:
            operationId: getClassesForTerm
            summary: The REST read request message for the getClassesForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of classes related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /terms/{termSourcedId}/gradingPeriods:
        get:
            operationId: getGradingPeriodsForTerm
            summary: The REST read request message for the getGradingPeriodsForTerm() API call.
            tags: 
                - TermsManagement
            description: |
                To get the set of grading periods related to a specific term. If the specified term cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: termSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific term.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users:
        get:
            operationId: getAllUsers
            summary: The REST read request message for the getAllUsers() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a collection of users i.e. all users (including students and teachers).
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/UserSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users/{sourcedId}:
        get:
            operationId: getUser
            summary: The REST read request message for the getUser() API call.
            tags: 
                - UsersManagement
            description: |
                To read, get, a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleUserDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"

    /users/{userSourcedId}/classes:
        get:
            operationId: getClassesForUser
            summary: The REST read request message for the getClassesForUser() API call.
            tags: 
                - UsersManagement
            description: |
                To get the set of classes related to a specific user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specific user.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other appropriate code is available.  This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "200" : 
                    description: |
                        The request was successfully completed and a collection has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ClassSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter selection was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field' or  'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AcadSessionGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'academicSession'.
                type: string
                enum: 
                   - academicSession
        additionalProperties: false
    AcademicSessionDType:
        description: |
            The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - startDate
            - endDate
            - type
            - schoolYear
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title/label for the academic session. Model Primitive Datatype = NormalizedString.
                type: string
            startDate: 
                description: The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            type: 
                description: |
                    The type of academic session. This is based upon an enumerated vocabulary.
                type: string
            parent: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            children: 
                description: |
                    The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AcadSessionGUIDRefDType"
            schoolYear: 
                description: The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    AcademicSessionSetDType:
        description: |
            This is the container for a collection of academicSessions 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: 
            academicSessions: 
                description: |
                    The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AcademicSessionDType"
        additionalProperties: false
    ClassDType:
        description: |
            A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - course
            - school
            - terms
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The tile/label for the class. Model Primitive Datatype = NormalizedString.
                type: string
            classCode: 
                description: The class code. Model Primitive Datatype = NormalizedString.
                type: string
            classType: 
                description: |
                    The type of class. This is based upon an enumerated vocabulary.
                type: string
            location: 
                description: The location for the class e.g. 'Room 19'. Model Primitive Datatype = NormalizedString.
                type: string
            grades: 
                description: The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            subjects: 
                description: The set of subjects addressed by this class e.g. 'chemistry'. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            course: 
                $ref: "#/definitions/CourseGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            terms: 
                description: |
                    The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/AcadSessionGUIDRefDType"
            subjectCodes: 
                description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            periods: 
                description: The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            resources: 
                description: |
                    The links to the set of associated resources i.e. the Resource 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    ClassGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'class'.
                type: string
                enum: 
                   - class
        additionalProperties: false
    ClassSetDType:
        description: |
            This is the container for a collection of classes 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: 
            classes: 
                description: |
                    The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ClassDType"
        additionalProperties: false
    CourseDType:
        description: |
            The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - courseCode
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title of the course. Model Primitive Datatype = NormalizedString.
                type: string
            schoolYear: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            courseCode: 
                description: The assigned course code. Model Primitive Datatype = NormalizedString.
                type: string
            grades: 
                description: Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            subjects: 
                description: The set of subjects addresse by this course. This is a set of human readable strings.   Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            org: 
                $ref: "#/definitions/OrgGUIDRefDType"
            subjectCodes: 
                description: This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details). Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            resources: 
                description: |
                    The links to the associated resources if applicable i.e. the resource 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    CourseGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'course'.
                type: string
                enum: 
                   - course
        additionalProperties: false
    CourseSetDType:
        description: |
            This is the container for a collection of courses 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: 
            courses: 
                description: |
                    The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CourseDType"
        additionalProperties: false
    CredentialDType:
        description: |
            The container for a single set of credentials for an account.
        type: object
        required: 
            - type
            - username
        properties: 
            type: 
                description: The type of credentials for the profile. This should be indicative of when this specific credential should be used. Model Primitive Datatype = String.
                type: string
            username: 
                description: The username. Model Primitive Datatype = NormalizedString.
                type: string
            password: 
                description: The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed. Model Primitive Datatype = String.
                type: string
        additionalProperties: true
    DemographicsDType:
        description: |
            Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            birthDate: 
                description: the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            sex: 
                description: |
                    The sex of the individual. The permitted values are from an enumerated list.
                type: string
            americanIndianOrAlaskaNative: 
                description: |
                    Identification of whether or not the user is an American Indian or Alaska Native ethnicity.
                type: string
                enum: 
                   - true
                   - false
            asian: 
                description: |
                    Identification of whether or not the user is of Asian ethnicity.
                type: string
                enum: 
                   - true
                   - false
            blackOrAfricanAmerican: 
                description: |
                    Identification of whether or not the user is black or African American ethnicity.
                type: string
                enum: 
                   - true
                   - false
            nativeHawaiianOrOtherPacificIslander: 
                description: |
                    Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.
                type: string
                enum: 
                   - true
                   - false
            white: 
                description: |
                    Identification of whether or not the user is of white ethnicity.
                type: string
                enum: 
                   - true
                   - false
            demographicRaceTwoOrMoreRaces: 
                description: |
                    Identification of whether or not the user has a demographic of two or more race ethnicities.
                type: string
                enum: 
                   - true
                   - false
            hispanicOrLatinoEthnicity: 
                description: |
                    Identification of whether or not the user is Hispanic or of Latino ethnicity.
                type: string
                enum: 
                   - true
                   - false
            countryOfBirthCode: 
                description: The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
            stateOfBirthAbbreviation: 
                description: The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
            cityOfBirth: 
                description: The name of the city in which the user was born. Model Primitive Datatype = NormalizedString.
                type: string
            publicSchoolResidenceStatus: 
                description: An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    DemographicsSetDType:
        description: |
            This is the container for a collection of demographics 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: 
            demographics: 
                description: |
                    The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/DemographicsDType"
        additionalProperties: false
    EnrollmentDType:
        description: |
            An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - user
            - class
            - school
            - role
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            user: 
                $ref: "#/definitions/UserGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            role: 
                description: |
                    The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.
                type: string
            primary: 
                description: |
                    Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.
                type: string
                enum: 
                   - true
                   - false
            beginDate: 
                description: The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'. Model Primitive Datatype = Date.
                type: string
                format: date
        additionalProperties: false
    EnrollmentSetDType:
        description: |
            This is the container for a collection of enrollment 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: 
            enrollments: 
                description: |
                    The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/EnrollmentDType"
        additionalProperties: false
    MetadataDType:
        description: |
            The container for the proprietary extensions.
        type: object
        properties: {}
        additionalProperties: true
    OrgDType:
        description: |
            ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - name
            - type
            - identifier
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            name: 
                description: The name of the organization. Model Primitive Datatype = NormalizedString.
                type: string
            type: 
                description: |
                    The type of organization. This uses a predefined vocabulary.
                type: string
            identifier: 
                description: Human readable identifier for this org e.g. NCES ID. Model Primitive Datatype = String.
                type: string
            parent: 
                $ref: "#/definitions/OrgGUIDRefDType"
            children: 
                description: |
                    The 'sourcedIds' for the set of child organizations.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/OrgGUIDRefDType"
        additionalProperties: false
    OrgGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'org'.
                type: string
                enum: 
                   - org
        additionalProperties: false
    OrgSetDType:
        description: |
            This is the container for a collection of org 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: 
            orgs: 
                description: |
                    The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/OrgDType"
        additionalProperties: false
    ResourceGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'resource'.
                type: string
                enum: 
                   - resource
        additionalProperties: false
    RoleDType:
        description: |
            The container for one mapping between a role and an org for the user.
        type: object
        required: 
            - roleType
            - role
            - org
        properties: 
            roleType: 
                description: |
                    Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.
                type: string
                enum: 
                   - primary
                   - secondary
            role: 
                description: |
                    The role of the user in the org. The permitted values are from an enumerated list. 
                type: string
            org: 
                $ref: "#/definitions/OrgGUIDRefDType"
            userProfile: 
                description: The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            beginDate: 
                description: The start date on which the role becomes active (inclusive).  Model Primitive Datatype = Date.
                type: string
                format: date
            endDate: 
                description: The end date on which the role becomes inactive (exclusive).  Model Primitive Datatype = Date.
                type: string
                format: date
        additionalProperties: false
    SingleAcademicSessionDType:
        description: |
            This is the container for a single academicSession instance for a message payload.
        type: object
        required: 
            - academicSession
        properties: 
            academicSession: 
                $ref: "#/definitions/AcademicSessionDType"
        additionalProperties: false
    SingleClassDType:
        description: |
            This is the container for a single class instance for a message payload.
        type: object
        required: 
            - class
        properties: 
            class: 
                $ref: "#/definitions/ClassDType"
        additionalProperties: false
    SingleCourseDType:
        description: |
            This is the container for a single course instance for a message payload.
        type: object
        required: 
            - course
        properties: 
            course: 
                $ref: "#/definitions/CourseDType"
        additionalProperties: false
    SingleDemographicsDType:
        description: |
            This is the container for a single demographics instance for a message payload.
        type: object
        required: 
            - demographics
        properties: 
            demographics: 
                $ref: "#/definitions/DemographicsDType"
        additionalProperties: false
    SingleEnrollmentDType:
        description: |
            This is the container for a single enrollment instance for a message payload.
        type: object
        required: 
            - enrollment
        properties: 
            enrollment: 
                $ref: "#/definitions/EnrollmentDType"
        additionalProperties: false
    SingleOrgDType:
        description: |
            This is the container for a single org instance for a message payload.
        type: object
        required: 
            - org
        properties: 
            org: 
                $ref: "#/definitions/OrgDType"
        additionalProperties: false
    SingleUserDType:
        description: |
            This is the container for a single user instance for a message payload.
        type: object
        required: 
            - user
        properties: 
            user: 
                $ref: "#/definitions/UserDType"
        additionalProperties: false
    UserDType:
        description: |
            Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - enabledUser
            - givenName
            - familyName
            - roles
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            userMasterIdentifier: 
                description: The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification. Model Primitive Datatype = NormalizedString.
                type: string
            username: 
                description: The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead. Model Primitive Datatype = NormalizedString.
                type: string
            userIds: 
                description: |
                    The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserIdDType"
            enabledUser: 
                description: |
                    This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.
                type: string
                enum: 
                   - true
                   - false
            givenName: 
                description: The given name. Also, known as the first name. Model Primitive Datatype = NormalizedString.
                type: string
            familyName: 
                description: The family name. Also, known as the last name. Model Primitive Datatype = NormalizedString.
                type: string
            middleName: 
                description: The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'. Model Primitive Datatype = NormalizedString.
                type: string
            preferredFirstName: 
                description: The user's preferred first name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            preferredMiddleName: 
                description: The user's preferred middle name(s). This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            preferredLastName: 
                description: The user's preferred last name. This attribute was added in version 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            pronouns: 
                description: The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun. Model Primitive Datatype = NormalizedString.
                type: string
            roles: 
                description: |
                    The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/RoleDType"
            userProfiles: 
                description: |
                    The set of system/app/tool profiles for the user.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserProfileDType"
            primaryOrg: 
                $ref: "#/definitions/OrgGUIDRefDType"
            identifier: 
                description: An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead. Model Primitive Datatype = String.
                type: string
            email: 
                description: The email address for the user. Model Primitive Datatype = NormalizedString.
                type: string
            sms: 
                description: The SMS number for the user. Model Primitive Datatype = NormalizedString.
                type: string
            phone: 
                description: The phone number for the user. Model Primitive Datatype = NormalizedString.
                type: string
            agents: 
                description: |
                    The links to other people i.e. User 'sourcedIds'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserGUIDRefDType"
            grades: 
                description: Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            password: 
                description: A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted. Model Primitive Datatype = String.
                type: string
            resources: 
                description: |
                    The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResourceGUIDRefDType"
        additionalProperties: false
    UserGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'user'.
                type: string
                enum: 
                   - user
        additionalProperties: false
    UserIdDType:
        description: |
            This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
        type: object
        required: 
            - type
            - identifier
        properties: 
            type: 
                description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                type: string
            identifier: 
                description: The user identifier. Model Primitive Datatype = String.
                type: string
        additionalProperties: false
    UserProfileDType:
        description: |
            The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.
        type: object
        required: 
            - profileId
            - profileType
            - vendorId
        properties: 
            profileId: 
                description: The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            profileType: 
                description: The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc. Model Primitive Datatype = NormalizedString.
                type: string
            vendorId: 
                description: The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile. Model Primitive Datatype = NormalizedString.
                type: string
            applicationId: 
                description: Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the use of the profile. This should not contain any security information for access to the account. Model Primitive Datatype = String.
                type: string
            credentials: 
                description: |
                    The set of credentials that are available for access to this profile.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CredentialDType"
        additionalProperties: false
    UserSetDType:
        description: |
            This is the container for a collection of user 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: 
            users: 
                description: |
                    The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/UserDType"
        additionalProperties: false
    imsx_CodeMinorDType:
        description: |
            This is the container for the set of code minor status codes reported in the responses from the Service Provider.
        type: object
        required: 
            - imsx_codeMinorField
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - invalid_filter_field
                   - invalid_selection_field
                   - invaliddata
                   - unauthorisedrequest
                   - forbidden
                   - server_busy
                   - unknownobject
                   - internal_server_error
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
        type: object
        required: 
            - imsx_codeMajor
            - imsx_severity
        properties: 
            imsx_codeMajor: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_CodeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

toc | top

Appendix C JSON Schema Listings

This Section is NORMATIVE.

C1 JSON Schemas for Payload Validation

This is the set of JSON Schema listing that are used to validate the set of JSON payloads used by this service.

C1.1a JSON Schema for the "getAcademicSession" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.1b JSON Schema for the "getAcademicSession" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getacademicsession-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAcademicSession-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAcademicSession-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.1c JSON Schema for the "getAcademicSession" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getacademicsession-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAcademicSession-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAcademicSession-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSession" : {
            "description" : "The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AcademicSessionDType"
        }
    },
    "required" : [ "academicSession" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.2a JSON Schema for the "getAllAcademicSessions" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.2b JSON Schema for the "getAllAcademicSessions" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallacademicsessions-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAcademicSessions-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAcademicSessions-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.2c JSON Schema for the "getAllAcademicSessions" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallacademicsessions-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAcademicSessions-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAcademicSessions-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSessions" : {
            "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.3a JSON Schema for the "getAllClasses" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.3b JSON Schema for the "getAllClasses" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallclasses-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllClasses-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllClasses-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.3c JSON Schema for the "getAllClasses" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallclasses-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllClasses-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllClasses-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.4a JSON Schema for the "getAllCourses" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.4b JSON Schema for the "getAllCourses" Operation Response Payload Validation for HTTP Codes (default,400,401,403,429,500,422)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallcourses-default-400-401-403-429-500-422-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllCourses-default-400-401-403-429-500-422-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllCourses-default-400-401-403-429-500-422-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.4c JSON Schema for the "getAllCourses" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallcourses-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllCourses-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllCourses-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "courses" : {
            "description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/CourseDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseDType" : {
            "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                    "type" : "string"
                },
                "schoolYear" : {
                    "description" : "The link to academicSession i.e. the AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "courseCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "org" : {
                    "description" : "The link to org i.e. the 'sourcedId' of the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.5a JSON Schema for the "getAllDemographics" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.5b JSON Schema for the "getAllDemographics" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getalldemographics-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllDemographics-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllDemographics-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.5c JSON Schema for the "getAllDemographics" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getalldemographics-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllDemographics-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllDemographics-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "demographics" : {
            "description" : "The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/DemographicsDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "DemographicsDType" : {
            "description" : "Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "birthDate" : {
                    "description" : "Model Primitive Datatype = Date. the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "sex" : {
                    "description" : "The sex of the individual. The permitted values are from an enumerated list.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "male","female","unspecified","other" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "americanIndianOrAlaskaNative" : {
                    "description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "asian" : {
                    "description" : "Identification of whether or not the user is of Asian ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "blackOrAfricanAmerican" : {
                    "description" : "Identification of whether or not the user is black or African American ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "nativeHawaiianOrOtherPacificIslander" : {
                    "description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "white" : {
                    "description" : "Identification of whether or not the user is of white ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "demographicRaceTwoOrMoreRaces" : {
                    "description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "hispanicOrLatinoEthnicity" : {
                    "description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "countryOfBirthCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "stateOfBirthAbbreviation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "cityOfBirth" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the city in which the user was born.",
                    "type" : "string"
                },
                "publicSchoolResidenceStatus" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.6a JSON Schema for the "getAllEnrollments" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.6b JSON Schema for the "getAllEnrollments" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallenrollments-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllEnrollments-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllEnrollments-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.6c JSON Schema for the "getAllEnrollments" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallenrollments-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllEnrollments-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllEnrollments-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "enrollments" : {
            "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/EnrollmentDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "EnrollmentDType" : {
            "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "user" : {
                    "description" : "The link to the enrolled User i.e. the User 'sourcedId'.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the school at which the class is being provided i.e. an Org 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "role" : {
                    "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "administrator","proctor","student","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "primary" : {
                    "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7a JSON Schema for the "getAllGradingPeriods" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.7b JSON Schema for the "getAllGradingPeriods" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallgradingperiods-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllGradingPeriods-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllGradingPeriods-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7c JSON Schema for the "getAllGradingPeriods" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallgradingperiods-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllGradingPeriods-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllGradingPeriods-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSessions" : {
            "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.8a JSON Schema for the "getAllOrgs" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.8b JSON Schema for the "getAllOrgs" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallorgs-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllOrgs-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllOrgs-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.8c JSON Schema for the "getAllOrgs" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallorgs-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllOrgs-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllOrgs-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "orgs" : {
            "description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/OrgDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgDType" : {
            "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of organization. This uses a predefined vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "department","district","local","national","school","state" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                    "type" : "string"
                },
                "parent" : {
                    "description" : "The 'sourcedId' of the parent organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "children" : {
                    "description" : "The 'sourcedIds' for the set of child organizations.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
            "additionalProperties" : false
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.9a JSON Schema for the "getAllSchools" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.9b JSON Schema for the "getAllSchools" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallschools-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllSchools-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllSchools-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.9c JSON Schema for the "getAllSchools" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallschools-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllSchools-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllSchools-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "orgs" : {
            "description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/OrgDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgDType" : {
            "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of organization. This uses a predefined vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "department","district","local","national","school","state" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                    "type" : "string"
                },
                "parent" : {
                    "description" : "The 'sourcedId' of the parent organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "children" : {
                    "description" : "The 'sourcedIds' for the set of child organizations.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
            "additionalProperties" : false
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.10a JSON Schema for the "getAllStudents" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.10b JSON Schema for the "getAllStudents" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallstudents-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllStudents-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllStudents-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.10c JSON Schema for the "getAllStudents" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallstudents-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllStudents-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllStudents-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.11a JSON Schema for the "getAllTeachers" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.11b JSON Schema for the "getAllTeachers" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallteachers-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllTeachers-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllTeachers-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.11c JSON Schema for the "getAllTeachers" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallteachers-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllTeachers-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllTeachers-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.12a JSON Schema for the "getAllTerms" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.12b JSON Schema for the "getAllTerms" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallterms-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllTerms-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllTerms-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.12c JSON Schema for the "getAllTerms" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallterms-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllTerms-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllTerms-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSessions" : {
            "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.13a JSON Schema for the "getAllUsers" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.13b JSON Schema for the "getAllUsers" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallusers-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllUsers-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllUsers-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.13c JSON Schema for the "getAllUsers" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getallusers-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllUsers-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllUsers-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.14a JSON Schema for the "getClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.14b JSON Schema for the "getClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.14c JSON Schema for the "getClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "class" : {
            "description" : "The instance of the single class for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/ClassDType"
        }
    },
    "required" : [ "class" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.15a JSON Schema for the "getClassesForCourse" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.15b JSON Schema for the "getClassesForCourse" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforcourse-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForCourse-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForCourse-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.15c JSON Schema for the "getClassesForCourse" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforcourse-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForCourse-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForCourse-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.16a JSON Schema for the "getClassesForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.16b JSON Schema for the "getClassesForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.16c JSON Schema for the "getClassesForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.17a JSON Schema for the "getClassesForStudent" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.17b JSON Schema for the "getClassesForStudent" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforstudent-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForStudent-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForStudent-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.17c JSON Schema for the "getClassesForStudent" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforstudent-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForStudent-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForStudent-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.18a JSON Schema for the "getClassesForTeacher" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.18b JSON Schema for the "getClassesForTeacher" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforteacher-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForTeacher-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForTeacher-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.18c JSON Schema for the "getClassesForTeacher" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforteacher-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForTeacher-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForTeacher-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.19a JSON Schema for the "getClassesForTerm" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.19b JSON Schema for the "getClassesForTerm" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforterm-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForTerm-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForTerm-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.19c JSON Schema for the "getClassesForTerm" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforterm-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForTerm-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForTerm-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.20a JSON Schema for the "getClassesForUser" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.20b JSON Schema for the "getClassesForUser" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforuser-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForUser-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForUser-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.20c JSON Schema for the "getClassesForUser" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getclassesforuser-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getClassesForUser-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getClassesForUser-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "classes" : {
            "description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ClassDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassDType" : {
            "description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The tile/label for the class.",
                    "type" : "string"
                },
                "classCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The class code.",
                    "type" : "string"
                },
                "classType" : {
                    "description" : "The type of class. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "homeroom","scheduled" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "location" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The location for the class e.g. 'Room 19'.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The grade(s) who attend the class. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addressed by this class e.g. 'chemistry'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "course" : {
                    "description" : "The link to the associated course i.e. the Course 'sourcedId'.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the associated school i.e. the School 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "terms" : {
                    "description" : "The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "periods" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","course","school","terms" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.21a JSON Schema for the "getCourse" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.21b JSON Schema for the "getCourse" Operation Response Payload Validation for HTTP Codes (default,400,401,403,429,500,404,422)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getcourse-default-400-401-403-429-500-404-422-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCourse-default-400-401-403-429-500-404-422-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCourse-default-400-401-403-429-500-404-422-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.21c JSON Schema for the "getCourse" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getcourse-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCourse-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCourse-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "course" : {
            "description" : "The instance of the single course for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/CourseDType"
        }
    },
    "required" : [ "course" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseDType" : {
            "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                    "type" : "string"
                },
                "schoolYear" : {
                    "description" : "The link to academicSession i.e. the AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "courseCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "org" : {
                    "description" : "The link to org i.e. the 'sourcedId' of the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.22a JSON Schema for the "getCoursesForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.22b JSON Schema for the "getCoursesForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getcoursesforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCoursesForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCoursesForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.22c JSON Schema for the "getCoursesForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getcoursesforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCoursesForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCoursesForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "courses" : {
            "description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/CourseDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseDType" : {
            "description" : "The information about a course. A Course is a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers. It is likely that several classes of a single course may be taught in a term. For example, a school runs Grade 9 English in the spring term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same i.e. the course curriculum.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title of the course.",
                    "type" : "string"
                },
                "schoolYear" : {
                    "description" : "The link to academicSession i.e. the AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "courseCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The assigned course code.",
                    "type" : "string"
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which the class is attended. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "subjects" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of subjects addresse by this course. This is a set of human readable strings.  ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "org" : {
                    "description" : "The link to org i.e. the 'sourcedId' of the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "subjectCodes" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is a machine readable set of codes and the number should match the associated 'subjects' attribute. The vocabulary for this characteristic should be defined as part of the local addition of this specification (see the Implementation Guide [OR-IMPL-12] for more details).",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "resources" : {
                    "description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","courseCode" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.23a JSON Schema for the "getDemographics" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.23b JSON Schema for the "getDemographics" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getdemographics-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getDemographics-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getDemographics-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.23c JSON Schema for the "getDemographics" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getdemographics-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getDemographics-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getDemographics-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "demographics" : {
            "description" : "The instance of the single demographics for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/DemographicsDType"
        }
    },
    "required" : [ "demographics" ],
    "additionalProperties" : false,
    "definitions" : {
        "DemographicsDType" : {
            "description" : "Demographics information is taken from the Common Educational Data Standards (CEDS) from the US government. (http://ceds.ed.gov). Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "birthDate" : {
                    "description" : "Model Primitive Datatype = Date. the date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "sex" : {
                    "description" : "The sex of the individual. The permitted values are from an enumerated list.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "male","female","unspecified","other" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "americanIndianOrAlaskaNative" : {
                    "description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "asian" : {
                    "description" : "Identification of whether or not the user is of Asian ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "blackOrAfricanAmerican" : {
                    "description" : "Identification of whether or not the user is black or African American ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "nativeHawaiianOrOtherPacificIslander" : {
                    "description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "white" : {
                    "description" : "Identification of whether or not the user is of white ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "demographicRaceTwoOrMoreRaces" : {
                    "description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "hispanicOrLatinoEthnicity" : {
                    "description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "countryOfBirthCode" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "stateOfBirthAbbreviation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                },
                "cityOfBirth" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the city in which the user was born.",
                    "type" : "string"
                },
                "publicSchoolResidenceStatus" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.24a JSON Schema for the "getEnrollment" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.24b JSON Schema for the "getEnrollment" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollment-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollment-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollment-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.24c JSON Schema for the "getEnrollment" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollment-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollment-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollment-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "enrollment" : {
            "description" : "The instance of the single enrollment for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/EnrollmentDType"
        }
    },
    "required" : [ "enrollment" ],
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "EnrollmentDType" : {
            "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "user" : {
                    "description" : "The link to the enrolled User i.e. the User 'sourcedId'.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the school at which the class is being provided i.e. an Org 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "role" : {
                    "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "administrator","proctor","student","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "primary" : {
                    "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.25a JSON Schema for the "getEnrollmentsForClassInSchool" Operation Request Payload Validation.

MISSING JSON SCHEMA DESCRIPTION.

C1.25b JSON Schema for the "getEnrollmentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollmentsforclassinschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollmentsForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollmentsForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.25c JSON Schema for the "getEnrollmentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollmentsforclassinschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollmentsForClassInSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollmentsForClassInSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "enrollments" : {
            "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/EnrollmentDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "EnrollmentDType" : {
            "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "user" : {
                    "description" : "The link to the enrolled User i.e. the User 'sourcedId'.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the school at which the class is being provided i.e. an Org 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "role" : {
                    "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "administrator","proctor","student","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "primary" : {
                    "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.26a JSON Schema for the "getEnrollmentsForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.26b JSON Schema for the "getEnrollmentsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollmentsforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollmentsForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollmentsForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.26c JSON Schema for the "getEnrollmentsForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getenrollmentsforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getEnrollmentsForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getEnrollmentsForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "enrollments" : {
            "description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/EnrollmentDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "EnrollmentDType" : {
            "description" : "An enrollment is the name given to an individual taking part in a class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are also possible.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "user" : {
                    "description" : "The link to the enrolled User i.e. the User 'sourcedId'.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The link to the class on which the user is enrolled i.e. the Class 'sourcedId'.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The link to the school at which the class is being provided i.e. an Org 'sourcedId'.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "role" : {
                    "description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "administrator","proctor","student","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "primary" : {
                    "description" : "Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class (this value set as 'true') in the period defined by the begin/end dates.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the enrollment (inclusive). This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the enrollment (exclusive).  This date must be within the period of the associated Academic Session for the class (Term/Semester/SchoolYear). Use the [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.27a JSON Schema for the "getGradingPeriod" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.27b JSON Schema for the "getGradingPeriod" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getgradingperiod-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getGradingPeriod-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getGradingPeriod-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.27c JSON Schema for the "getGradingPeriod" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getgradingperiod-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getGradingPeriod-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getGradingPeriod-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSession" : {
            "description" : "The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AcademicSessionDType"
        }
    },
    "required" : [ "academicSession" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.28a JSON Schema for the "getGradingPeriodsForTerm" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.28b JSON Schema for the "getGradingPeriodsForTerm" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getgradingperiodsforterm-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getGradingPeriodsForTerm-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getGradingPeriodsForTerm-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.28c JSON Schema for the "getGradingPeriodsForTerm" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getgradingperiodsforterm-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getGradingPeriodsForTerm-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getGradingPeriodsForTerm-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSessions" : {
            "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.29a JSON Schema for the "getOrg" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.29b JSON Schema for the "getOrg" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getorg-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getOrg-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getOrg-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.29c JSON Schema for the "getOrg" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getorg-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getOrg-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getOrg-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "org" : {
            "description" : "The instance of the single org for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/OrgDType"
        }
    },
    "required" : [ "org" ],
    "additionalProperties" : false,
    "definitions" : {
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgDType" : {
            "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of organization. This uses a predefined vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "department","district","local","national","school","state" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                    "type" : "string"
                },
                "parent" : {
                    "description" : "The 'sourcedId' of the parent organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "children" : {
                    "description" : "The 'sourcedIds' for the set of child organizations.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
            "additionalProperties" : false
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.30a JSON Schema for the "getSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.30b JSON Schema for the "getSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getschool-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getSchool-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getSchool-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.30c JSON Schema for the "getSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "org" : {
            "description" : "The instance of the single org for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/OrgDType"
        }
    },
    "required" : [ "org" ],
    "additionalProperties" : false,
    "definitions" : {
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgDType" : {
            "description" : "ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established. School is defined here as the place where the learning happens. Most commonly this is the data that describes a bricks and mortar building, or, in the case of a virtual school, the virtual school organization. For enrollment and result reporting purposes, little information about this organization is required. A common example of a local organization is a school district.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the organization.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of organization. This uses a predefined vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "department","district","local","national","school","state" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. Human readable identifier for this org e.g. NCES ID.",
                    "type" : "string"
                },
                "parent" : {
                    "description" : "The 'sourcedId' of the parent organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "children" : {
                    "description" : "The 'sourcedIds' for the set of child organizations.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","name","type","identifier" ],
            "additionalProperties" : false
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.31a JSON Schema for the "getStudent" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.31b JSON Schema for the "getStudent" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,422,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudent-default-400-401-403-404-429-422-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudent-default-400-401-403-404-429-422-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudent-default-400-401-403-404-429-422-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.31c JSON Schema for the "getStudent" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudent-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudent-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudent-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "user" : {
            "description" : "The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/UserDType"
        }
    },
    "required" : [ "user" ],
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.32a JSON Schema for the "getStudentsForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.32b JSON Schema for the "getStudentsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforclass-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForClass-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForClass-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.32c JSON Schema for the "getStudentsForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.33a JSON Schema for the "getStudentsForClassInSchool" Operation Request Payload Validation.

MISSING JSON SCHEMA DESCRIPTION.

C1.33b JSON Schema for the "getStudentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforclassinschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.33c JSON Schema for the "getStudentsForClassInSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforclassinschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForClassInSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForClassInSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.34a JSON Schema for the "getStudentsForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.34b JSON Schema for the "getStudentsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.34c JSON Schema for the "getStudentsForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getstudentsforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getStudentsForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getStudentsForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.35a JSON Schema for the "getTeacher" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.35b JSON Schema for the "getTeacher" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,422,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteacher-default-400-401-403-404-429-422-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeacher-default-400-401-403-404-429-422-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeacher-default-400-401-403-404-429-422-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.35c JSON Schema for the "getTeacher" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteacher-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeacher-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeacher-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "user" : {
            "description" : "The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/UserDType"
        }
    },
    "required" : [ "user" ],
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.36a JSON Schema for the "getTeachersForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.36b JSON Schema for the "getTeachersForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforclass-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForClass-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForClass-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.36c JSON Schema for the "getTeachersForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.37a JSON Schema for the "getTeachersForClassInSchool" Operation Request Payload Validation.

MISSING JSON SCHEMA DESCRIPTION.

C1.37b JSON Schema for the "getTeachersForClassInSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforclassinschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForClassInSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.37c JSON Schema for the "getTeachersForClassInSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforclassinschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForClassInSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForClassInSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.38a JSON Schema for the "getTeachersForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.38b JSON Schema for the "getTeachersForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.38c JSON Schema for the "getTeachersForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getteachersforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTeachersForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTeachersForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "users" : {
            "description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/UserDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.39a JSON Schema for the "getTerm" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.39b JSON Schema for the "getTerm" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getterm-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTerm-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTerm-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.39c JSON Schema for the "getTerm" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getterm-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTerm-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTerm-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSession" : {
            "description" : "The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AcademicSessionDType"
        }
    },
    "required" : [ "academicSession" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.40a JSON Schema for the "getTermsForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.40b JSON Schema for the "getTermsForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-gettermsforschool-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTermsForSchool-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTermsForSchool-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.40c JSON Schema for the "getTermsForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-gettermsforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getTermsForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getTermsForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "academicSessions" : {
            "description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AcademicSessionDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AcademicSessionDType" : {
            "description" : "The container for an academicSession. An academicSession represents a duration of time. Typically they are used to describe terms, grading periods, and other durations e.g. school years. Term is used to describe a period of time during which learning will take place. Other words for term could be in common use around the world e.g. Semester. The important thing is that Term is a unit of time, often many weeks long, into which classes are scheduled. Grading Period is used to represent another unit of time, that within which line items are assessed. A term may have many grading periods, a grading period belongs to a single term. A class may be assessed over several grade periods (represented by a line item being connected to a grading period). The parent / child attributes of academic sessions allow terms to be connected to their grading periods and vice-versa. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title/label for the academic session.",
                    "type" : "string"
                },
                "startDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date for the academic session. The start date is included in the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date for the academic session. The end date is excluded from the academic session. This is in [ISO 8601] format of 'YYYY-MM-DD'.",
                    "type" : "string",
                    "format" : "date"
                },
                "type" : {
                    "description" : "The type of academic session. This is based upon an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "gradingPeriod","semester","schoolYear","term" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "parent" : {
                    "description" : "The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "children" : {
                    "description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    }
                },
                "schoolYear" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The school year for the academic session.  This year should include the school year end e.g. 2014. This is in the [ISO 8601] format of 'YYYY'.",
                    "type" : "string"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.41a JSON Schema for the "getUser" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.41b JSON Schema for the "getUser" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,422,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getuser-default-400-401-403-404-429-422-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getUser-default-400-401-403-404-429-422-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getUser-default-400-401-403-404-429-422-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","forbidden",
                                "server_busy","unknownobject","internal_server_error" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.41c JSON Schema for the "getUser" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerosterrosteringservicev1p2-getuser-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getUser-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getUser-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech);  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "user" : {
            "description" : "The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/UserDType"
        }
    },
    "required" : [ "user" ],
    "additionalProperties" : false,
    "definitions" : {
        "CredentialDType" : {
            "description" : "The container for a single set of credentials for an account.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = String. The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The username.",
                    "type" : "string"
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. The password in this set of credentials.  Care should be taken to ensure that no unencrypted value is revealed.",
                    "type" : "string"
                }
            },
            "required" : [ "type","username" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResourceGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Resourse' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'resource'.",
                    "type" : "string",
                    "enum" : [ "resource" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "RoleDType" : {
            "description" : "The container for one mapping between a role and an org for the user.",
            "type" : "object",
            "properties" : {
                "roleType" : {
                    "description" : "Indicates if this role is the primary or secondary role for that org. There MUST be one, and only one, primary role for each org.",
                    "type" : "string",
                    "enum" : [ "primary","secondary" ]
                },
                "role" : {
                    "description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "aide","counselor","districtAdministrator","guardian","parent","principal","proctor","relative","siteAdministrator","student","systemAdministrator","teacher" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            }
                    ]
                },
                "org" : {
                    "description" : "The link to the associated org i.e. the 'sourcedId' for the org.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "userProfile" : {
                    "description" : "Model Primitive Datatype = AnyURI. The identifier for the system/tool/app access account that is relevant to this role in the org. The equivalent UserProfile should exist with a 'profileId' equal to this identifier value.",
                    "type" : "string",
                    "format" : "uri"
                },
                "beginDate" : {
                    "description" : "Model Primitive Datatype = Date. The start date on which the role becomes active (inclusive). ",
                    "type" : "string",
                    "format" : "date"
                },
                "endDate" : {
                    "description" : "Model Primitive Datatype = Date. The end date on which the role becomes inactive (exclusive). ",
                    "type" : "string",
                    "format" : "date"
                }
            },
            "required" : [ "roleType","role","org" ],
            "additionalProperties" : false
        },
        "UserDType" : {
            "description" : "Users, Teachers and Students are human beings that are teaching or studying in a class respectively. A single User class is used to represent both teachers and students and a role property is used to distinguish a user's natural role.Humans may have relationships with other humans. For example, a student may have parents. The 'agents' attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student - so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role 'parent' MUST have agents that are of type 'student'. Note: Teachers MUST NOT be set as agents of students i.e. the teaching relationship is covered via enrollments. ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID  System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId.  The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products.  Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'.  Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "userMasterIdentifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The master unique identifier for this user. This is NOT the same as the user's interoperability 'sourcedId'. This should be used to ensure that all of the system identifiers/accounts etc. can be reconciled to the same user. How this identifier is assigned and its format is beyond the scope of this specification.",
                    "type" : "string"
                },
                "username" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user name assigned to the user. NOTE - This has been kept for backwards compatibility with OneRoster 1.1 and the new 'userProfiles' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "userIds" : {
                    "description" : "The set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                },
                "enabledUser" : {
                    "description" : "This is used to determine whether or not the record is active in the local system. 'false' denotes that the record is active but system access is curtailed according to the local administration rules.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "givenName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The given name. Also, known as the first name.",
                    "type" : "string"
                },
                "familyName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The family name. Also, known as the last name.",
                    "type" : "string"
                },
                "middleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
                    "type" : "string"
                },
                "preferredFirstName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred first name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredMiddleName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred middle name(s). This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "preferredLastName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The user's preferred last name. This attribute was added in version 1.2.",
                    "type" : "string"
                },
                "pronouns" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun.",
                    "type" : "string"
                },
                "roles" : {
                    "description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/RoleDType"
                    }
                },
                "userProfiles" : {
                    "description" : "The set of system/app/tool profiles for the user.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserProfileDType"
                    }
                },
                "primaryOrg" : {
                    "description" : "It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
                    "type" : "string"
                },
                "email" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The email address for the user.",
                    "type" : "string"
                },
                "sms" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The SMS number for the user.",
                    "type" : "string"
                },
                "phone" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The phone number for the user.",
                    "type" : "string"
                },
                "agents" : {
                    "description" : "The links to other people i.e. User 'sourcedIds'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    }
                },
                "grades" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Grade(s) for which a user with role 'student' is enrolled. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "password" : {
                    "description" : "Model Primitive Datatype = String. A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
                    "type" : "string"
                },
                "resources" : {
                    "description" : "The identifiers (GUIDs) for the set of resources that are to be made available to the user. These are the sourcedIds that should be used for obtaining the metadata about the resources using the OR 1.2 Resources Service [OR-RES-SM-12].",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResourceGUIDRefDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","enabledUser","givenName","familyName","roles" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the set of external user identifiers that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = String. The user identifier.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserProfileDType" : {
            "description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
            "type" : "object",
            "properties" : {
                "profileId" : {
                    "description" : "Model Primitive Datatype = AnyURI. The unique identifier for the profile. This does not need to be a globally unique identifier but it must be unique within the scope of the user.",
                    "type" : "string",
                    "format" : "uri"
                },
                "profileType" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of profile. This should be a human readable label that has some significance in the context of the related system, app, tool, etc.",
                    "type" : "string"
                },
                "vendorId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
                    "type" : "string"
                },
                "applicationId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. Identifier for the application associated with the account. The nature, and how this identifier is assigned is not defined by this specification. This may have a value of 'default' to denote this account should be used for default access to all applications related to this vendor.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the use of the profile. This should not contain any security information for access to the account.",
                    "type" : "string"
                },
                "credentials" : {
                    "description" : "The set of credentials that are available for access to this profile.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CredentialDType"
                    }
                }
            },
            "required" : [ "profileId","profileType","vendorId" ],
            "additionalProperties" : false
        }
    }
}
        

toc | top

About this Document

Title: IMS OneRoster Rostering Service REST/JSON Binding v1.2
Editors: Colin Smythe (1EdTech) and Joshua McGhee (1EdTech)

Co-chairs: Matt Richards (Infinite Campus, USA)

Version: 1.0
Version Date: 19th September 2022
Status: IMS Final Release
Summary: This is the OneRoster 1.2 Rostering Service specification. This service provides the management of Academic Sessions, Users, Classes, Courses, Orgs, Students, Teachers, Schools, Grading Periods, Demographics, Terms and Enrollments. This service is made available as a REST/JSON based binding to support rostering data exchange.

Revision Information: The first release of the OneRoster 1.2 Rostering Service REST/JSON Binding based upon the IMS Modelling-based Specification Approach.
Purpose: Made available for public adoption.
Document Location: https://www.imsglobal.org/spec/oneroster/v1p2/rostering/bind/rest

toc | top

List of Contributors

The following individuals contributed to the development of this document:

Eric Adams Instructure (USA)
Barry Brahier Infinite Campus (USA)
Tom Clark Pearson (USA)
Linda Feng Unicon (USA)
Viktor Haag Desire2Learn (Canada)
Richard Heim LearningMate (USA)
Tom Ingram Escambia County School District (USA)
Oxana Jurosevic Instructure (USA)
Jong Kim Pearson (USA)
Andrew Kuritzky Edmentum (USA)
David Mayes Gwinnett County Schools (USA)
Joshua McGhee 1EdTech (USA)
Phil Nicholls 1EdTech (UK)
Padraig O'hiceadha HMH (UK)
Upendra Penegalapati Pearson (USA)
James Perreault FLVS (USA)
Patrick Porter Houston ISD (USA)
Matt Richards Infinite Campus (USA)
Wendy Riedy Microsoft (USA)
Kurt Rompot Pearson (USA)
Gabrielle Sanderson Illuminate Education (USA)
Colin Smythe 1EdTech (UK)
Konrad Stimeling K12 Inc (USA)
Aditya Subramaniam Schoology (USA)
Matt Vella Schoology (USA)
TJ Vering Microsoft (USA)
Mark Walls Gwinnett County Schools (USA)

toc | top

Revision History

Version No. Release Date Comments
Final 1.0 / Document 1.0 1st July, 2015 First release of the OneRoster Service specification.
Final 1.1 / Document 1.0 1st November, 2016 This second release includes new operations to create and delete single objects, support for the exchange of Result, LineItem, Category and Resource objects.
Final 1.2 / Document 1.0 19th September, 2022 This is the first release of the OneRoster 1.2: Rostering Service as a standalone document. A number of data models changes have been made and the use of OAuth 2 has been made mandatory. No changes have been made to the set of service operations.

toc | top

IMS Global Learning Consortium, Inc. ("IMS Global") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an "As Is" and "As Available" basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

IMS Global would appreciate receiving your comments and suggestions.

Please contact IMS Global through our website at http://www.imsglobal.org.

Please refer to Document Name: IMS OneRoster Rostering Service REST/JSON Binding v1.2

Date: 19th September 2022

toc | top