OneRoster 1.2 Norwegian Profile

1EdTech OneRoster Specification: Norwegian Profile

Final Release
Spec Version 1.0
Final Release
Document Version: 1.0
Date Issued: 28th, August 2025
Status: This document is made available for adoption by the public community at large.
This version: https://www.imsglobal.org/spec/or-nor/v1p0/
Latest version: https://www.imsglobal.org/spec/or-nor/latest/
Errata: https://www.imsglobal.org/spec/or-nor/v1p0/errata/

IPR and Distribution Notice

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

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

Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech 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 1EdTech or its successors or assigns.

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

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

© 2024 1EdTech™ Consortium, Inc. All Rights Reserved.

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

Abstract

The 1EdTech 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/Schools. The primary use-cases are: the exchange of data between a Student Information System (SIS)/Student Administration System (SAS) and Learning Management System (LMS), and the rostering of access to learning tools.

OneRoster 1.2 has been defined to enable various attributes to be "tailored" to meet regional/country needs. This document defines the Norwegian Profile of OneRoster. This Profile is based on the OneRoster European Profile [OR-EU-12], which defines a framework upon which European Country-specific profiles of OneRoster 1.2 are based. A key constraint applied by the Norwegian profile is that interoperability is enabled through the REST-based API ONLY i.e. CSV-based exchange is not permitted. This document includes details about conformance and certification with respect to this profile, and implementation guidance on the best practice usage of the new Norwegian constraints. The certification addresses both the requirements for REST-based Service Providers and Service Consumers.

This Profile adds constraints to the OneRoster 1.2 specification [OR-OVIEW-12] upon which it is based, and also defines additional constructs to tailor the OneRoster information model to meet needs of the Norwegian K-12 ecosystem. Also, a new OneRoster service has been defined (the Student Absence Service) to address important Norwegian K-12 use-cases not enabled by the OneRoster 1.2 specification.

1. Introduction

1.1 Scope and Context

The 1EdTech 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-cases are: the exchange of data between a Student Information System (SIS)/Student Administration System (SAS) and Learning Management System (LMS), and the rostering of learning tools. In OR 1.2, the service has been split into four core services:

  • OR 1.2 Rostering Service Model [ORROS-SM-12] - to enable the exchange of information about the rostering of people in classes;
  • OR 1.2 Resources Service Model [ORRES-SM-12] - to enable the exchange of information about the set of resources that SHOULD be made available to users, courses and classes;
  • OR 1.2 Gradebook Service Model [ORGBK-SM-12] - to enable the exchange of information about results which may be aligned as lineItems and categories which are collections of lineItems;
  • Assessment Results Profile for Gradebook Services [ORGBK-ARP-10] - to enable the exchange of information about detailed results aligned to lineItems.

The standard includes a REST-based binding to make it quicker and easier to implement the exchange of information about people, membership, courses and gradebooks [ORROS-BD-12], [ORRES-BD-12], [ORGBK-BD-12]. In addition to the REST binding description, a format for CSV file based exchange has also been defined [OR-CSV-121].

This document, the OneRoster 1.2 Norwegian Profile, defines a set of restrictions and extensions on OneRoster 1.2 to tailor the specification for use within the Norwegian K-12 ecosystem. Part of the profiling activity has included the definition of a new OneRoster service (the Student Absence Service) to address important Norwegian K-12 use-cases not enabled by the OneRoster 1.2 specification. The Norwegian K-12 Profile REQUIRES the use of the REST/JSON binding technology only.

1.2 Conformance Statements

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

The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in [RFC2119].

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

1.3 Profiles and the Profiling Process

1EdTech create flexible specifications that can be used in a wide range of teaching and learning scenarios, markets and geographic locations. The consensus-based specification development process used by 1EdTech creates specifications that are imperfect but which 'enable practice'. The process of Profiling is used to enable different communities to tailor those specifications that enable, and enforce, best practice in the form of a Profile. It is for the community themselves to decide the form of a Profile but ALL Profiles MUST follow the constraints established by 1EdTech for the definition of a Profile. The key principle for a Profile is that an instance that conforms to the Profile will also conform to the corresponding base specification.

The creation of a Profile is based upon the following constraints:

  • A Data Model MUST only be extended as permitted by the extension points in the base specification and MUST use the corresponding constraints as imposed by the binding technology that realises the form of the extension;
  • The properties in a Data Model MAY be changed as long as the change adds constraints, This includes:
    • Multiplicity - optional properties MAY be PROHIBITED or REQUIRED. The degree of support MAY be reduced e.g. 1-to-many reduced to one ONLY
    • Data-type - making a data-type more restrictive is permitted e.g. String to Enumeration, reducing the list of permitted enumerations, Integer to Non-negative Integer, etc.
  • Embedded vocabularies MAY be extended if the original vocabulary permits extensions (it is 1EdTech best practice for all embedded vocabularies to be designed such that they can be extended. Properties of appropriate data-types e.g. String, etc. MAY be constrained by the inclusion of a new embedded vocabulary;
  • For a service model new operations MAY be added to the set of established operations. The style of definition of those operations MUST follow the style of the established operations. The new operations MAY be added to an established 'Interface' or new 'Interfaces' MAY be created;
  • New services MAY be defined. In some cases a 1EdTech specification is the combination of more than one service and so the addition of new services is consistent with the 1EdTech definition of a specification. The style of definition of a new MUST follow the style of 1EdTech service definitions and MUST be defined to support Profiling;
  • The capabilities of a service MAY be extended to take advantage of the inherent features of the binding technology. For example, new OAuth 2' scopes MAY be added as part of the REST-based service binding. Similarly, new Query Parameters could also be added.

The only way to ensure that a valid Profile is created is to use the 1EdTech Model Driven Specification Toolkits. Therefore, a Profile SHOULD be created as a collaborative activity between the profiling community and the 1EdTech core technical team. A Profile is published using the normal specification development process i.e. undergoes formal vote by the 1EdTEch Technical Advisory Board. All 1EdTech Members and the broader public will have access to a published Profile. Only those 1EdTech Contributing Members that either require the use of the Profile or who create products that are certified to the Profile are responsible for the maintenance of the Profile.

1.4 Structure of this Document

The structure of the rest of this document is:

2. Key Details of K-12 Education in Norway An overview of the relevant teaching and learning structures and activities that must be supported by this Norwegian profile of OneRoster 1.2. The objective is to tailor the OneRoster specification to the needs of the Norwegian teaching and learning activities.
3. Use Cases for OneRoster in K-12 Education in Norway The new use-cases that were identified to support education in Norwegian schools. The corresponding detailed use-case descriptions are supplied in Appendix A.
4. The Constraints and Extensions Applied by the Profile The functional details for the profile. This includes definition of the data model extensions and increased constraints, the new endpoints to the existing Rostering Service, the definition of the new Student Absence Service, and the definition of the new vocabularies.
5. Implementation Guide The suggested best practices for the new features that have added in this profile. Usage of the best practices from the base OneRoster 1.2 specification are assumed.
6. Conformance & Certifications The certifications that are available for the Norwegian Profile and the corresponding functionality that must be supported by Service Providers and Service Consumers to prove conformance.
Appendix A Summary Use-case Descriptions Specific to the Norwegian K-12 Profile The set of new use-cases specific to the requirements of K-12/Schools in Norway.
Appendix B Summary of Changes to the OneRoster 1.2 Rostering Service The formal statement of the changes made to the base specification. This statement is produced by the 1EdTech Model Driven Specification toolkit.
Appendix C AfterSchool and Childcare Extension Endpoints The detailed definition for the new set of endpoints that have been added to the OneRoster Service to support the exchange of information about After-School and Childcare activities.
Appendix D OpenAPI Listings The set of OpenAPI files that have been produced to support this profile. OpenAPI files, version 3, in both the JSON and YAML formats are available.
Appendix E Revision History Formal release history of changes made to this document.
Appendix F References Formal citations for all of the works referenced in this document.
Appendix G List of Contributors The list of individuals who contributed to the development of this document.

1.5 Terminology and Acronyms

API
Application Programming Interface
Consumer
The entity that is contained with an application/system/tool to obtain data from a Service Provider.
CASE
Competencies and Academic Standards Exchange
County (Fylkeskommune)
Norway is divided into 11 administrative regions called counties. The counties form the first-level administrative divisions of Norway and are further subdivided into 356 Municipalities.
CSV
Comma Separated Values
FEIDE
Felles Elektronisk Identitetshåndtering is a centralized identity management solution for the educational sector of Norway and is short for «common electronic identity management.
Grep
The national database for subjects, curricula and the structure of available courses and apprenticeships in the primary and secondary education and training in Norway.
GUID
Globally Unique Identifier
HTTP
HyperText Transfer Protocol
IETF
Internet Engineering Task Force
IUT
Implementation Under Test. An IUT may be claiming compliance as a Consumer and/or a Service Provider and may also support CSV import and/or CSV export.
JSON
JavaScript Object Notation
LIS
Learning Information Services
LMS
Learning Management System
LOR
Learning Object Repository
LTI
Learning Tools Interoperability
Municipality (Kommune)
Municipalities are the unit of local government in Norway responsible for primary education (until 10th grade), outpatient health services, senior citizen services, unemployment and other social services, zoning, economic development, and municipal road
PAS Code
This is the PAS examination code assigned to the school.
PIFU
Personrelatert informasjonsflyt i utdanning (English: Flow of person-related information in education)
PPT
Pedagogisk Psykologisk Tjeneste (English: Pedagogical Psychology Service)
REST
Representational State Transfer
RFC
Request For Comment
Service Provider
The entity that is responsible for supplying data to a Consumer. In general a Service Provider will support many Consumers concurrently.
SAS
Student Administration Service (Norwegian: Skoleadministrativt System)
SFO
Skolefritidsordning (English: After School-programme)
SIS
Student Information Service
UPN
User Principal Name
URI
Uniform Resource Identifier
URN
Uniform Resource Name
UTF
Unicode Transformation Format
UUID
Universally Unique Identifier
VIGO Identifier
This is the identifier for a school under the VIGO database.

2. Key Details of K-12 Education in Norway

2.1 The Structure of Norwegian K-12 Education

Figure 1 shows the schooling in Norway and how it is structured with grades 1 through 13 for both public and private schools. In Norway, schooling is divided into three parts: Primary School (grades 1-7), Lower Secondary school (grades 8-10) and Upper Secondary School (grades 11-13, called Vg1, Vg2 and Vg3). The Municipalities (school owner) are responsible for primary and secondary school, whilst the Counties (school owner) are responsible for Upper Secondary. The Municipalities are also responsible for the after school activities.

Figure 1 The structure of the primary and secondary education and training in Norway.

The Municipalities and Counties can be school owner for one or more schools. For private schools, school owner and school are the same entity, but registered as different organizations (with different organization numbers). They follow the structure as the picture above, with a few exceptions. The Municipalities and Counties are not responsible for the private schools.

2.2 Student Groups

Figure 2 shows how students in Norway are members or enrolled into different units and groups. They have a relationship to both the school owner (Municipality or County) and the school. They are also enrolled into a grade level (10th grade) and a “main” class (10A), consisting of his or her fellow students and one or two contact teachers with responsibility for that particular main class. The students in this main class are enrolled into the same subject groups (Science 10A, English 10A etc). A student can also take subjects outside of this “main” class, often an interdisciplinary group or an elective subject e.g. foreign language (German, French etc). Students can also be members of “non-subject” groups like a student council, a lab group for science, etc.

Figure 2 Example of a students group structure.

The dotted line shows how a student can have a membership in a different school. This might happen if the student is going to take a subject or needs access to content in learning materials that are either higher or lower in difficulty based on grade level.

2.3 Teacher Groups

Figure 3 is similar to Figure 2, but is from the teacher's perspective. The main difference is that teachers often teach in multiple grade levels.

Figure 3 Example of a teachers group structure.

The teacher is enrolled into different units and groups. They have a relation to both the school owner (Municipality or County) and the school. They are also enrolled into one or more grade levels as well as a “main” class (10A), which they are responsibility for. The teacher is enrolled into the main class’s subject groups (Science 10A, English 10A etc) and the other classes the teacher teaches. Teachers can also be members of "non-subject" groups e.g. a lab group for science.

2.4 The Extended Data Model

The set of single objects that can be exchanged between OR Rostering end-systems are:

  • An 'academicSession' - a duration over which teaching and learning occurs. This includes a 'term' or 'gradingPeriod' which are types of 'academicSession';
  • A 'class' - a teaching activity for a course. Each course will be taught through one or more classes;
  • A 'course' - a course of study that, typically, has a shared curriculum although it may be taught to different students by different teachers;
  • A 'demographics' - the set of demographics information for a user;
  • An 'enrollment' - a user is enrolled on a class delivered by an 'org';
  • An 'org' - the information about an organization. This includes a 'school' which is a type of 'org';
  • A 'user' - the information about a user. This includes a 'student' or 'teacher' who are types of 'user'. This information includes the roles for the user in the corresponding 'orgs' and the set of 'userProfiles' for a user on the various systems/tools/apps that could be used.

The set of collection objects that can be exchanged between OR Rostering end-systems are:

  • A collection of 'academicSessions';
  • A collection of 'classes';
  • A collection of 'courses';
  • A collection of 'demographics';
  • A collection of 'enrollments';
  • A collection of 'orgs' (this includes the new after school and childcare activities);
  • A collection of 'users' - this includes the set of roles and userProfiles for each user.

The full OneRoster data model, including the relationships between the core classes, is shown in Figure 4 with annotations identifying the amendments made in this Profile.

Figure 4 The full OneRoster Rostering Data Model.
  • A course will be delivered by one or more classes. Each course is assigned to a single 'org' and an org' may be responsible for any number of courses. A course MAY be identified as a "Ghost Course" to support classes that are not being scheduled;
  • A user is enrolled on a class (a class MUST be associated to a course). A user may be enrolled on more than one class and each class will have one or more enrolled users;
  • Each class will be delivered in a specific 'academicSession' and any number of classes may be delivered in an 'academicSession';
  • Each 'academicSession' will be handled by an 'org' and each 'org' will be responsible for any number of academicSessions;
  • Each user may have a demographics description and each demographics is assigned to a single user only;
  • A user must have at least one role and each role is assigned in the context of a single org. A user may have many roles in many orgs (denoted by many role-org mappings);
  • A user may have one or more profiles and each profile is assigned to a single user. A role may be aligned to a user profile.

3. Use Cases for OneRoster in K-12 Education in Norway

The set of use-cases that were identified as the basis for this Norwegian Profile are described in the table below. The corresponding use-case summaries are supplied in Appendix A.

ID Use-case Description
N1 Support for different groups.
The Norwegian school system uses different kind of groups. A new vocabulary is detailed in the revised data model in Section 4. A Group is defined as a new type of Class. Therefore, clarification on the definition and use of Groups, Classes and Courses is provided.
N2 Support for URI's in a class/course.
The Norwegian school system has a national database for subjects, curricula and structure on available courses (this is the Grep database). They are often used in combination with groups and to express grades, subjects, etc. Identification of this information is through the use of URIs.
N3 Support for different roles.
For a specific employee or student at a school, access to services is based on the person's role. The person can have different kind of roles in different kind of groups. For example, the role "subject teacher" in one group and "contact teacher" in another. This is also related to the student data for which a teacher should have access. Roles are also defined for access to groups. Roles are also used in Feide and the profile should support the roles that exist there. In Norway there are many roles that need to be supported beyond those currently defined in the OneRoster specification.
N4 Support for multiple user identifiers for a person.
A person usually has more than one user identity including: National Identity Number, Workforce ID, UPN (which equates to username/email in many systems), FeideID (Feide is a centralized identity management solution for the educational sector of Norway) among others. Support for identification using these identifiers is required.
N5 Support for absence.
All contact teachers in a school must note the absence for a student. The Norwegian school system, uses both “valid” and “invalid” absence on both detailed and aggregated level. The total absence is stated on both a grading card (given at the end of each semester) and the diploma (given at the end of lower an upper secondary). Valid absences are deducted from the total.
N6 Support for fictional data.
An administrator needs to assign fictional data to certain students that are in category 6 (strengt fortrolig - strictly confidential) or 7 (fortrolig - confidential). The data (phone number) is blocked from view by all private persons. Category 7 means that the phone number of the person exposed to threats is not provided to private individuals but is available to the part of the public sector that has access to information from the National Register of Citizens. Category 6 means that information about the phone number is not delivered to anyone.

4. The Constraints and Extensions Applied by the Profile

4.1 Overview of Changes Made by the Profile

The Table below lists the changes made by the Norwegian Profile of OneRoster 1.2.

A Summary of the Changes to the OneRoster 1.2 Specification Made in the Norwegian K-12 Profile.
ID Construct Change Summary Details
1 CSV Support Removal of the requirement for CSV support as part of certification. Implementations are REQUIRED to support REST. N/A
2 Gradebooks, Assessment Results and Resources Services The requirements and expectations for support of the OneRoster 1.2 Gradebooks, Assessment Results and Resources Services are unchanged. N/A
3 Absence Service Addition of new endpoints for describing student absence, with support for both detailed and summarised information. New Absence Details Service
4 AfterSchool and Childcare Add new endpoints to support afterschool and childcare activities. The returned data conforms to the same schema as that for schools. AfterSchool & Childcare Details
5 Class and Course Clarification on how the semantics of Class and Course objects MUST be interpreted in the Norwegian context. Class and Course Clarification
6 Groups and Class types Clarify how to define groups using Class and extend the classType enumeration to contain group types. Groups and Class Type Details
7 User Roles Append values to the 'User.role' vocabulary. User Role Vocabulary Changes
8 Enrollment Roles Append values to the 'Enrollment.role' vocabulary. Enrollment Role Vocabulary Changes
9 Org Types Append more possible values to the 'Org.type' vocabulary. Org Type Vocabulary Changes
10 Language Extension Add support to identify the default language for all of the string and string-related properties. Add Language Identification
11 Demographics Remove all properties except 'sex' and 'birthDate'. The demographics object remains in place to enable support for additional fields to be added in future revisions of the profile. Change in Demographics Definition
12 Subject Codes Deprecate the use of the OneRoster 1.2 'subjectCodes' property, and instead use a new property defined as part of metadata. Subject Codes details
13 Identifier and Password Remove 'User.identifier' and 'User.password' from the schema (these are deprecated in OR 1.2). Changes to the User Data Model
14 UserIDs For 'UserId.type', add PIFU values as the vocabulary UserIDs Vocabulary Definition
15 Org Identifier Specify that this MUST be a valid "organisasjonsnummer" as per the organization number registry at: https://www.brreg.no. Org Identifier Definition
16 Add New School Identifiers and Codes New identifiers are added in definition of the School to provide the VIGO Identifier and the PAS Code. New School Identifiers and Codes
17 Grades For the 'grades' property in the 'Class' and 'Course' objects, use GREP arstrinn as the preferred, but not required, vocabulary. The actual values used are the "uri" field in the arstrinn JSON-encoded Vocabulary. Grades Vocabulary Definition

4.2 New Student Absence Service Overview

A new service that enables the reporting of student absence has been created [ORABS-SM-10] [ORABS-BD-10]. One “absence” is the absence for a student during a school year. Absence for previous and pre-registered (next) school years come with status “tobedeleted” as they are to be considered historical and/or not relevant for the present year.

4.2.1 The Set of Endpoints

A summary of the set of endpoints defined for this service is listed in the Table below.

The Set of REST Endpoint URL-leaf Values.
Service Call Description REST Endpoint HTTP Verb
getAllDetailAbsences To read, get, the complete collection of student absences (detail) i.e. all absences (detail). /absences/detail GET
getAllSummaryAbsences To read, get, the complete collection of student absences (summary) i.e. all absences (summary). /absences/summary GET
getDetailAbsence To read, get, a specific student absence (detail) description. /absences/detail/{sourcedId} GET
getDetailAbsenceForSchool To read the specified student absence (detail) information for the specified school. /schools/{schoolSourcedId}/absences/detail/{absenceSourcedId} GET
getDetailAbsenceForStudentInSchool To read the specified student absence (detail) information for the specified school and student. /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/detail/{absenceSourcedId} GET
getDetailAbsenceSetForSchool To read the set of student absence (detail) information for the specified school. /schools/{schoolSourcedId}/absences/full GET
getDetailAbsenceSetForStudentInSchool To read the set of student absence (detail) information for the specified school and student. /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/detail GET
getSummaryAbsence To read, get, a specific student absence (summary) description. /absences/summary/{sourcedId} GET
getSummaryAbsenceForSchool To read the specified student absence (summary) information for the specified school. /schools/{schoolSourcedId}/absences/summary/{absenceSourcedId} GET
getSummaryAbsenceForStudentInSchool To read the specified student absence (summary) information for the specified school and student. /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/summary/{absenceSourcedId} GET
getSummaryAbsenceSetForSchool To read the set of student absence (summary) information for the specified school. /schools/{schoolSourcedId}/absences/summary GET
getSummaryAbsenceSetForStudentInSchool To read the set of student absence (summary) information for the specified school and student. /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/summary GET

The full service binding description to REST/JSON technology is defined in [ORABS-BD-10].

4.2.2 The Data Model

The set of service objects that are exchanged between end-systems are:

  • StudentAbsenceSummary - the container for the base set of data for a student absence;
  • StudentAbsenceDetails - the container for the full set of student absence information (the base plus the absence details and absence adjustments).

The set of service collection objects that are exchanged between end-systems are:

  • StudentAbsenceSummarySet - a set of base Student Absences;
  • StudentAbsenceDetailsSet - a set of full Student Absences.

A StudentAbsenceSummary points to the related user (Student), the org (School) and the academicSession (Term). The StudentAbsenceDetails points to the related users (RegisteredByUsers and SignedByUsers) and academicSessions (Terms). A schematic representation of this set of relationships is shown in Figure 5.

Diagram of the logical relationships between StudentAbsences and other Rostering models.
Figure 5 The logical relationships between student absences and other rostering models.

The full data model is defined in [ORABS-SM-10].

An example of the payloads exchanged using the Absence Service is shown HERE.

4.3 New Rostering Service Endpoints to Support AfterSchool and Childcare Activities

Support for the new afterschool and childcare activities has been achieved by adding a new set of endpoints to the Rostering Service. Both afterschool and childcare Groups are defined as a type of 'org'. Therefore, NO new first class data model features have been defined. The new set of endpoints are defined in the Table below. Details of these new endpoints is given in [ORROS-NOR-BD-12]. The corresponding modified OpenAPI files are given in Appendix B1 and Appendix B2.

The New Set of REST Endpoint for the Rostering Service.
Service Call Description REST Endpoint HTTP Verb
getAllAfterSchools To read, get, a collection of after-school activities i.e. all orgs of type 'after-school'. /afterschools GET
getAcademicSessionSetForAfterSchool To read, get, the collection of academic sessions for specific after-school activity. /afterschools/{afterschoolSourcedId}/academicSessions GET
getAcademicSessionForAfterSchool To read, get, the specific academic session for the specific after-school activity. /afterschools/{afterschoolSourcedId}/academicsessions/{sourcedId} GET
getClassSetForAfterSchool To read, get, the collection of classes for specific after-school activity. /afterschools/{afterschoolSourcedId}/classes GET
getClassForAfterSchool To read, get, the specific class for the specific after-school activity. /afterschools/{afterschoolSourcedId}/classes/{classSourcedId} GET
getStudentSetForClassInAfterSchool To read, get, the collection of students for specific after-school activity and class. /afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/students GET
getTeacherSetForClassInAfterSchool To read, get, the collection of teachers for specific after-school activity and class. /afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/teachers GET
getEnrollmentSetForAfterSchool To read, get, the collection of enrollments for specific after-school activity. /afterschools/{afterschoolSourcedId}/enrollments GET
getEnrollmentForAfterSchool To read, get, the specific enrollment for the specific after-school activity. /afterschools/{afterschoolSourcedId}/enrollments/{sourcedId} GET
getStudentSetForAfterSchool To read, get, the collection of students for specific after-school activity. /afterschools/{afterschoolSourcedId}/students GET
getStudentForAfterSchool To read, get, the specific student for the specific after-school activity. /afterschools/{afterschoolSourcedId}/students/{sourcedId} GET
getTeacherSetForAfterSchool To read, get, the collection of teachers for specific after-school activity. /afterschools/{afterschoolSourcedId}/teachers GET
getTeacherForAfterSchool To read, get, the specific teacher for the specific after-school activity. /afterschools/{afterschoolSourcedId}/teachers/{sourcedId} GET
getUserSetForAfterSchool To read, get, the collection of users for specific after-school activity. /afterschools/{afterschoolSourcedId}/users GET
getUserForAfterSchool To read, get, the specific user for the specific after-school activity. /afterschools/{afterschoolSourcedId}/users/{sourcedId} GET
getAfterSchool To read, get, a specific after-school activity. /afterschools/{sourcedId} GET
getAllChildcares To read, get, a collection of child care activities i.e. all orgs of type 'child care'. /childcares GET
getAcademicSessionSetForChildcare To read, get, the collection of academic sessions for specific childcare activity. /childcares/{childcareSourcedId}/academicsessions GET
getAcademicSessionForChildcare To read, get, the specific academic session for the specific childcare activity. /childcares/{childcareSourcedId}/academicsessions/{sourcedId} GET
getClassSetForChildcare To read, get, the collection of classes for specific childcare activity. /childcares/{childcareSourcedId}/classes GET
getClassForChildcare To read, get, the specific class for the specific childcare activity. /childcares/{childcareSourcedId}/classes/{sourcedId} GET
getStudentSetForClassInChildcare To read, get, the collection of students for specific childcare activity and class. childcares/{childcareSourcedId}/classes/{classSourcedId}/students GET
getTeacherSetForClassInChildcare To read, get, the collection of teachers for specific childcare activity and class. /childcares/{childcareSourcedId}/classes/{classSourcedId}/teachers GET
getEnrollmentSetForChildcare To read, get, the collection of enrollments for specific childcare activity. /childcares/{childcareSourcedId}/enrollments GET
getEnrollmentForChildcare To read, get, the specific enrollment for the specific childcare activity. /childcares/{childcareSourcedId}/enrollments/{sourcedId} GET
getStudentSetForChildcare To read, get, the collection of students for specific childcare activity. /childcares/{childcareSourcedId}/students GET
getStudentForChildcare To read, get, the specific student for the specific childcare activity. /childcares/{childcareSourcedId}/students/{sourcedId} GET
getTeacherSetForChildcare To read, get, the collection of teachers for specific childcare activity. /childcares/{childcareSourcedId}/teachers GET
getTeacherForChildcare To read, get, the specific teacher for the specific childcare activity. /childcares/{childcareSourcedId}/teachers/{sourcedId} GET
getUserSetForChildcare To read, get, the collection of users for specific childcare activity. /childcares/{childcareSourcedId}/users GET
getUserForChildcare To read, get, the specific user for the specific childcare activity. /childcares/{childcareSourcedId}/users/{sourcedId} GET
getChildcare To read, get, a specific child care activity. /childcares/{sourcedId} GET

4.3.1 Using the AfterSchool and Childcare Endpoints

Key points to note when using the AfterSchool and Childcare endpoints are:

  • The AfterSchool and Childcare payloads are an org with a type of ext:afterSchool and ext:childcare respectively
  • Both AfterSchool and Childcare are a sub-type of school i.e. "org.type" = "school" i.e. the set of AfterSchool and Childcare objects will be returned in the payload for a getAllSchools endpoint and other School related endpoints
  • When enrolled on a class at an AfterSchool or Childcare then "classType" = "homeroom" and the associated Course has a property of "courseCode" = "Ghost Course".

An example of the payloads exchanged using the new afterschools and childcare endpoints are shown HERE.

4.4 Clarification on the Use of Courses, Classes and Groups

4.4.1 Classes and Courses

In the Norwegian K-12 context, OneRoster Class and Course types MUST be interpreted as follows:

Course

Norwegian:
Beskrivelse av en læreplan med gitte fagkoder og kompetansemål. For eksempel "Matematikk 1.-10. årstrinn (MAT01‑05)".

English:
Description of a curriculum with given subject codes and competence goals. For example "Mathematics 1st-10th grade (MAT01‑05.

Class

Norwegian:
Et konkret tilfelle av en Course som beskriver hvilken fagkode og årstrinn en Class er knyttet til i en gitt Course (læreplan). For eksempel fagkoden Matematikk 2. årstrinn (MAT0002) og årstrinn 2. Til forskjell fra Course, har Class påmeldte lærere og elever. Samtidig kan Class si noe om tid og sted. I den norske profilen er det ikke alle typene av Class som har en tilknytning til en Course, og i disse tilfellene benyttes "Ghost Course"

English:
A concrete instance of a Course that describes which subject code and grade level a Class is linked to in a given Course (curriculum). For example, the subject code Mathematics 2nd year (MAT0002) and grade level 2. Unlike Course, Class has enrolled teachers and students. At the same time, Class can say something about time and place. In the Norwegian profile, not all types of Class have a connection to a Course, and such courses are referred to as "Ghost Course"

4.4.2 Groups and Class Types

OneRoster defines only two types of class i.e. "homeroom" and "scheduled". This is too limited and so this vocabulary has been extended.

Furthermore, Norwegian K-12 has Group-based activities which MUST be scheduled but are NOT aligned to a Course. Groups are represented using the regular Class class of OneRoster. In OneRoster, all classes must have an associated Course. But not all groups e.g. a parent planning committee, have a natural Course association. In these cases, a “ghost course” is created and associated with the given Class. “Ghost Courses” are identified by the value of the courseCode property in the corresponding Course having a value of Ghost Course. This means that at least one Ghost Course MUST be defined to support the definition of any number of Groups.

The extended vocabulary for the type of class/group is shown in the following Table. The details in the Table are:

The extended vocabulary for the type of Class/Group.
Term Description (Norwegian) Description (English) Ghost Course
homeroom Basisgruppe, klasse, SFO-model eller barnehageavdeling. Avhengig av organisasjonstypen. The homeroom (form) assigned to the class. The equivalent to a base group, class, after-school model or child care department. Therefore, the context determines the type of organization. Yes
scheduled Undervisningsgruppe / faggruppe. The class as assigned in the timetable. The equivalent to a teaching group. No
ext:contactTeacherGroup Gruppe for KontaktLærer. A group for the Contact Teachers. No
ext:grepGroup En gruppe for forskjellige grep-oppføringer. Mulige verdier er: fagkoder, programområder, utdanningsprogram og årstrinn. A group for different grep entries. Possible values are: fagkoder, programomraader, utdanningsprogram and aarstrinn. Yes
ext:nationalTestsGroup Gruppe for nasjonale prøver. Group for national tests. Yes
ext:specialEducation Gruppe for elever med rett til spesialundervisning, i henhold til et enkeltvedtak. Group for students with the right to special needs education, according to an individual administrative decision. Yes

An example of the payloads exchanged to support the definition of Groups is shown HERE.

In the scenario when a Grep Group is being defined, further information about the group MUST be supplied. This information is supplied in the metadata extension property for the Class. This new extension property is 1edtech.grepGroups and the definition is:

Definition of the '1edtech.grepGroups' property in the Metadata Class.
Property Name Description Data Type Multiplicity
1edtech.grepGroups A set of Grep Group definitions. GrepGroups 0..*
Definition of the New 'GrepGroups' Class.
Property Name Description Data Type Multiplicity
grepType The type of Grep Group Enumeration: [ 'fagkoder', 'programomraader', 'utdanningsprogram', 'aarstrinn' ] 1 (REQUIRED)
code Identifier for the Grep Group. NormalizedString 1 (REQUIRED)
title Human-readable title for the Group. String 1 (REQUIRED)
vocabName The name of the source vocabulary. Extensible Enumeration: [ 'GREP', 'VIGO', 'localCode', 'ext:*' ] 0..1 (OPTIONAL)
uri A URI to more information about this Grep Group, if existing. URI 0..1 (OPTIONAL)

An example of the payloads exchanged to support the definition of Grep Groups is shown HERE.

4.5 Changes to the Enumerated Vocabularies

4.5.1 User Role Vocabulary Changes

The available set of roles for a user has been extended. Every user MUST have at least one assigned role. The set of roles available is listed in the Table below.

The extended set of roles for a User.
Vocabulary Term Norwegian Term Description Note
aide Assistent i en organisasjon. Someone who provides appropriate aid to the user but NOT also one of the other roles. No change.
counselor Sosiallærer, miljøterapeut i en organisasjon. Someone who has care/pastoral supervision responsibility for one or more people No change.
districtAdministrator IKT-ansvarlig i en organisasjon. The district administrator will have responsibility for systems within the district sites and/or for systems that are accessed by the schools in the district. No change.
guardian Foresatt som ikke er biologisk forelder. Guardian of the user and NOT the Mother or Father i.e. parent. May also be a Relative. This term is PROHIBITED.
parent Biologiske foreldre. Mother or father of the user This term is PROHIBITED.
principal Rektor eller annen person med lederansvar i en organisasjon. The schools' Principal or other very senior academic administrator in the School. The principal will have access to confidential/private data about teachers, etc. No change.
proctor No equivalent term. Exam proctor. May be used for enrollment. This term is PROHIBITED.
relative Slektning som ikke er biologisk forelder A relative of the user and NOT the Mother or Father. May also be the Guardian. This term is PROHIBITED.
siteAdministrator IKT-ansvarlig på skolen Site administrator in the organization e.g. School. The site administrator will have responsibility for all of the systems at the site. No change.
student Elev på en skole eller SFO, eller barn i barnehage. A student at an organization e.g. School. May be used for enrollment. No change.
systemAdministrator IKT-ansvarlig for et system i en organisasjonsenhet. System administrator in the organization e.g. School. The system administrator will have responsibility for one of more systems at the site. No change.
teacher Lærer i en organisasjon. A Teacher at the organization e.g. School. May be used for enrollment. No change.
ext:ownerRepresentative Skoleeir Indicates an individual who acts on behalf of the owner of the school. A new role added in this profile.
ext:primaryGuardian Person med foreldreansvar eller annet formalisert ansvar for barnet. Person with parental responsibility or other formalized responsibility for the child. A new role added in this profile.
ext:responsibleCaregiver Person/er som kan være en midlertidig eller permanent støtte sammen med den/de med foreldreansvar. Person who in a permanent or temporarily position can support the legal guardian(s.) A new role added in this profile.
ext:staff Annen ansatt ved en organisasjon, men rollen deres er ikke dekket av de allerede eksisterende rollene./td> Indicates an individual who is an employee of the learning organization but their role is not covered by one of the other terms. A new role added in this profile.

4.5.2 Enrollment Role Vocabulary Changes

The available set of roles for enrollment has been extended through the use of subroles. A role/subrole approach has been adopted. Every enrollment MUST have an assigned role. The set of roles for enrollment available is listed in the Table below.

The set of roles for an Enrollment.
Vocabulary Term Norwegian Term Description Note
administrator IKT-ansvarlig An administrator will have responsibility for systems within the district sites and/or for systems that are accessed by the schools in the district. No change.
proctor No equivalent term. Exam proctor. This term is PROHIBITED.
student Elev A student at an organization e.g. School. No change.
teacher Lærer A Teacher at organization e.g. School. No change.
ext:aide Assistent i en organisasjon. Someone who provides appropriate aid to the user but NOT also one of the other roles. A new role added in this profile.
ext:contactTeacher Kontaktlærer i en organisasjon. Contact teacher responsible for a class or parts of a class, e.g 5A, 10C etc.. A new role added in this profile.

4.5.3 Org Type Vocabulary Changes

The vocabulary for the 'type' property is extensible. The new, full, vocabulary tokens are defined in the following Table.

The New Vocabulary Terms for the 'type' Property in the 'Org' Class.
New Vocabulary Token Norwegian Description English Description Note
department Avdeling A department may be a subset grouping in a school or a set of schools. No change.
district Distrikt A school district. No change.
local N/A Denotes some local grouping responsible for teaching and learning. Use of this value is PROHIBITED.
national N/A A national level organization. Use of this value is PROHIBITED.
school Skole The organization in which the K-12 teaching activity is delivered. No change. When used, the associated subtype definition MUST be defined.
state N/A Denotes a state/regional level organization. Use of this value is PROHIBITED.
ext:afterSchool SFO. Denotes an after school activity organization. New term added in this Profile.
ext:childCare Barnehage. Denotes a child care activity organization. New term added in this Profile.
ext:counsellingService PPT. Educational and Psychological Counselling Service. New term added in this Profile.
ext:county Fylkeskommune. Denotes that the County is the owner of the school, child care or after school. New term added in this Profile.
ext:municipality Kommune. Denotes that the Municipality is the owner of the school, child care or after school. New term added in this Profile.
ext:privateOwner Organisasjonen som er eier av en skole,barnehage eller SFO. The organization that is the private owner of a school, child care or after school. New term added in this Profile.

The set of subtypes that are available when the type of 'school' has been assigned as the main type of organization is listed in the Table below.

The extended set of subtypes for an Org when the type of 'school' has been selected.
New Vocabulary Token Norwegian Description English Description Note
adultEducation Voksenopplæring Education of adults. New term added in this Profile. This term extends the range of the types of school.
homeEducation Hjemmeundervisning. The teaching of children at home. New term added in this Profile. This term extends the range of the types of school.
kindergarten Barnehage. Primary school for grade level 1. New term added in this Profile. This term extends the range of the types of school.
vocationalSchool Fagskole. Education in an upper secondary school followed by two years of apprenticeship training and productive work in a training enterprise or public institution. New term added in this Profile. This term extends the range of the types of school.
primarySchool Barneskole (1.-7. trinn). Primary school for grade levels 1-7. New term added in this Profile. This term extends the range of the types of school.
primaryAndLowerSecondarySchool Skole som er kombinert både barne- og ungdomsskole (1.-10. årstrinn). School combined of both primary and lower secondary (grade levels 1-10). New term added in this Profile. This term extends the range of the types of school.
lowerSecondarySchool Ungdomsskole (8.-10. trinn). Lower secondary school for grade levels 8-10. New term added in this Profile. This term extends the range of the types of school.
upperSecondarySchool Videregående skole (vg1, vg2, vg3, vg4 og påbygg). Upper secondary school for grade levels 11-13 (14). New term added in this Profile. This term extends the range of the types of school.
lowerSecondaryAndUpperSecondarySchool Ungdomsskole (8.-10. trinn). Videregående skole (vg1, vg2, vg3, vg4 og påbygg). Lower secondary school for grade levels 8-10 and Upper secondary school for grades levels 11-13 (14). New term added in this Profile. This term extends the range of the types of school.

An example of using the combined type/subtype approach is available HERE.

4.6 Changes to the Data Model

4.6.1 Add Language Identification

The OPTIONAL property '1edtech.language' has been added to the Metadata Extension class. The value space for this property is defined in [BCP47].

An example of using this property is given in HERE.

4.6.2 Changes to the Demographics Data Model

In the 'Demographics' class this profile permits the use of ONLY the following properties:

  • 'sourcedId'
  • 'status'
  • 'dataLastModified'
  • 'metadata'
  • 'sex'
  • 'birthDate'

Therefore, use of the following properties is PROHIBITED:

  • 'americanIndianOrAlaskaNative'
  • 'asian'
  • 'blackOrAfricanAmerican'
  • 'nativeHawaiianOrOtherPacificIslander'
  • 'white'
  • 'demographicRaceTwoOrMoreRaces'
  • 'hispanicOrLatinoEthnicity'
  • 'countryOfBirthCode'
  • 'stateOfBirthAbbreviation'
  • 'cityOfBirth'
  • 'publicSchoolResidenceStatus'

4.6.3 Changes to the SubjectCode Definition

The existing OneRoster 1.2 subjectCodes property, available as optional on Course and Class, is deprecated in this profile. This means that it remains available for use to achieve backwards compatibility, but that the new metadata 1edtech.subjectCodes property is the preferred mechanism for relaying subject code information. The definition of this property is:

Definition of the '1edtech.subjectCodes' property in the Metadata Class.
Property Name Description Data Type Multiplicity
1edtech.subjectCodes A set of subject codes. SubjectCode 0..*
Definition of the New 'SubjectCodes' Class.
Property Name Description Data Type Multiplicity
code The subject code NormalizedString 1 (REQUIRED)
title Human-readable title of the subject. String 1 (REQUIRED)
vocabName The name of the source vocabulary. Extensible Enumeration: [ 'GREP', 'VIGO', 'localCode', 'ext:*' ] 0..1 (OPTIONAL)
uri A URI to more information about this subject code, if existing. URI 0..1 (OPTIONAL)

In the Norwegian profile, subjectCodes are relevant only when they occur with a classType with one of the following values:

  • scheduled
  • basicLangTrainingGroup

An example of using this property is given in HERE.

4.6.4 Changes to the User Data Model

In the 'User' class the properties 'identifier' and 'password' have been deprecated i.e. they were included for backwards compatibility to OneRoster 1.1. Therefore, for this profile, the use of these properties is PROHIBITED.

4.6.5 UserIds Vocabulary Definition

The userIds property in the User class has a child property of type which is used to identify the type of identifier being supplied. In the base OneRoster 1.2 specification the type property has a data-type of String. In this profile this property is changed to an enumerated vocabulary. This vocabulary is defined in the following Table.

The Enumerated Vocabulary for the user.userIds.type Property
Vocabulary Term Norwegian Description English Description
feideID Feidebruker identifikator. Tilsvarer verdien eduPersonPrincipalName i feidedokumentasjonen Feide-user ID. Corresponds to the value eduPersonPrincipalName in the Feide-documentation
UPN Brukernavn. Username in systems such as Office 365, Azure AD, etc.
personFIN personidentifikator fra VIGO. ID given from VIGO.
personLIN lokalt gitt ID-nummer. Locally given ID-number.
personNIN Fødselsnummer, D-nummer eller DUF-nummer. Identity numbers issued by authorities. For example: Social security number, D-number, DUF-number, etc.
personNINencrypted personNIN kryptert slik at avsender kan dekryptere innholdet til en personNIN (Kryperingsmetode avtales mellom avsender og mottaker utenfor overføringen). personNIN encrypted so that the sender can decrypt the content of personNIN (Encryption method agreed between sender and recipient outside the transmission).
sisID systemidentifikator i SAS/SIS (IPOS/OID). SystemID in SAS/SIS (IPOS/OID).
studentID Elevnummer. Student ID.
username Brukernavn. Username.
workforceID Ansattnummer. Workforce ID.

An example of using this property is given in HERE.

4.6.6 Clarification on the Definition of the Org Identifier

In the 'Org' class the 'identifier' property has a data-type of 'String'. For this profile the value space for that string MUST be a valid "organisasjonsnummer" i.e. the legal organization number. The register for these numbers is available at: https://www.brreg.no.

Use of this number is a best practice requirement. However, real-time validation of this number is not an operational or certification requirement.

An example of using this property is given in HERE.

4.6.7 Add New School Identifiers and Codes

Two new properties are defined in the extension for the Org Class when the description is for a School. In both cases these new properties are OPTIONAL with a data-type of 'NormalizedString'. The formal definition of these new properties is:

Definition of the new identifier and code properties in the Org Metadata Class.
Property Name Description Data Type Multiplicity
1edtech.schoolVIGOID The VIGO identifier assigned to the school. NormalizedString 0..1
1edtech.schoolPASCode The PAS code assigned to the school. NormalizedString 0..1

An example of using these two new properties is given in HERE.

4.6.8 Grades Vocabulary Definition

The 'grades' property in the Class, Course and User objects has a data-type of NormalizedString with a multiplicity of [ 0..* ]. The definition recommends that the appropriate local vocabulary is used. For this profile the vocabulary that SHOULD be used is defined in the JSON-encoded Vocabulary (if the preferred vocabulary is unsuitable then an abbreviated form MAY be used). The specific values are supplied as the uri properties in the JSON file e.g. "uri" : "http://psi.udir.no/kl06/aarstrinn1", etc.

Sometimes a students grade level and the grade level of the class they are enrolled on are different. The model supports this requirement through the use of grades vocabularies on different entities, e.g. a student may have user.grade set as http://psi.udir.no/kl06/aarstrinn1 while the grade of a class they are enrolled in might be set as https://data.udir.no/kl06/v201906/aarstrinn/aarstrinn2. This scenario can be interpreted as the student is a 1st grade student enrolled in a 2nd grade class.

An example of using this property is given in HERE.

4.7 Support for Fictional Data

The content in the payloads being exchanged MAY contain fictional data. The specification does not provide a mechanism to identify the data which is 'real' or 'fictional'. The 1EdTech Privacy Framework [PRIVACY-10] and the privacy sensitivity annotations in the OneRoster 1.2 Rostering Service [ORROS-SM-12] and accompanying REST/JSON Binding [ORROS-BD-12] describe how to identify and sensitive data.

5. Implementation Guide

All of the relevant recommendations in the OneRoster Implementation Guide [OR-IG-12] SHOULD be followed.

5.1 Example Payload for the Student Absence Service

An example payload for the request 'getAllDetailAbsences()' is shown below.

001  {
002     "absences" : [
003        {
004           "sourcedId" : "5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d-a7c9c25e-c959-443f-a497-192587ff811a-673",
005           "status" : "active"",
006           "dateLastModified" : "2022-01-14T11:37:13.166Z",
007           "metadata" : {
008              "..permitted extension point.." : "..user defined value.."
009           },
010           "totalDaysAbsent" : 0,
011           "totalMinutesAbsent" : 0,
012           "deductedDaysAbsent" : 0,
013           "deductedMinutesAbsent" : 0,
014           "adjustedDaysAbsent" : 0,
015           "adjustedMinutesAbsent" : 0,
016           "accumulatedDaysAbsent" : 0,
017           "accumulatedMinutesAbsent" : 0,
018           "user" : {
019              "href" : "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/users/a7c9c25e-c959-443f-a497-192587ff811a",
020              "sourcedId" : "a7c9c25e-c959-443f-a497-192587ff811a",
021              "type" : "user"
022           },
023           "school" : {
024              "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/schools/5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d",
025              "sourcedId" : "5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d",
026              "type" : "org"
027           },
028           "term" : {
029              "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/academicSessions/673?filter=type='term'",
030              "sourcedId" : "673",
031              "type" : "academicSession"
032           },
033           "absenceDetailsSet" : [
034              {
035                 "identifier" : "..String..",
036                 "fromTime" : "..Date/Time..",
037                 "toTime" : "..Date/Time..",
038                 "absenceDurationUnit" : "DAYS"|"MINUTES",
039                 "absenceDurationValue" : ..Number(NonNegativeInteger)..,
040                 "registeredInfo" : {
041                    "comment" : "..String..",
042                    "time" : "..Date/Time..",
043                    "byUserId" : {
044                       "href" : "..URI..",
045                       "sourcedId" : "..String..",
046                       "type" : "user"
047                    }
048                 },
049                 "absenceClassification" : "..select from Union..",
050                 "signingInfo" : {
051                    "comment" : "..String..",
052                    "time" : "..Date/Time..",
053                    "byUserId" : {
054                       "href" : "..URI..",
055                       "sourcedId" : "..String..",
056                       "type" : "user"
057                    }
058                 },
059                 "sessionsAffected" : [ "..String..", ..., "..String.." ],
060                 "classesAffected" : [ "..String..", ..., "..String.." ]
061              },
062              {...absences 1/absenceDetailsSet 2...},
063              {...absences 1/absenceDetailsSet 3...}
064           ],
065           "absenceAdjustmentSet" : [
066              {
067                 "identifier" : "..String..",
068                 "registeredInfo" : {
069                    "comment" : "..String..",
070                    "time" : "..Date/Time..",
071                    "byUserId" : {
072                       "href" : "..URI..",
073                       "sourcedId" : "..String..",
074                       "type" : "user"
075                    }
076                 },
077                 "days" : ..Number(Integer)..,
078                 "minutes" : ..Number(Integer)..,
079                 "term" : {
080                    "href" : "..URI..",
081                    "sourcedId" : "..String..",
082                    "type" : "academicSession"
083                 }
084              },
085              {...absences 1/absenceAdjustmentSet 2...},
086              {...absences 1/absenceAdjustmentSet 3...}
087           ]
088        },
089        {
090           "sourcedId" : "...absences 2...",
091           "status" : "active"|"tobedeleted",
092           "dateLastModified" : "..Date/Time..",
093           "metadata" : {
094               "..permitted extension point.." : "..user defined value.."
095           },
096           "totalDaysAbsent" : ..Number(NonNegativeInteger)..,
097           "totalMinutesAbsent" : ..Number(NonNegativeInteger)..,
098           "deductedDaysAbsent" : ..Number(NonNegativeInteger)..,
099           "deductedMinutesAbsent" : ..Number(NonNegativeInteger)..,
100           "adjustedDaysAbsent" : ..Number(NonNegativeInteger)..,
101           "adjustedMinutesAbsent" : ..Number(NonNegativeInteger)..,
102           "accumulatedDaysAbsent" : ..Number(NonNegativeInteger)..,
103           "accumulatedMinutesAbsent" : ..Number(NonNegativeInteger)..,
104           "user" : {
105              "href" : "..URI..",
106              "sourcedId" : "..String..",
107              "type" : "user"
108           },
109           "school" : {
110              "href" : "..URI..",
111              "sourcedId" : "..String..",
112              "type" : "org"
113           },
114           "term" : {
115              "href" : "..URI..",
116              "sourcedId" : "..String..",
117              "type" : "academicSession"
118           },
119           "absenceDetailsSet" : [
120              {
121                 "identifier" : "..String..",
122                 "fromTime" : "..Date/Time..",
123                 "toTime" : "..Date/Time..",
124                 "absenceDurationUnit" : "DAYS"|"MINUTES",
125                 "absenceDurationValue" : ..Number(NonNegativeInteger)..,
126                 "registeredInfo" : {
127                    "comment" : "..String..",
128                    "time" : "..Date/Time..",
129                    "byUserId" : {
130                       "href" : "..URI..",
131                       "sourcedId" : "..String..",
132                       "type" : "user"
133                    }
134                 },
135                 "absenceClassification" : "..select from Union..",
136                 "signingInfo" : {
137                    "comment" : "..String..",
138                    "time" : "..Date/Time..",
139                    "byUserId" : {
140                       "href" : "..URI..",
141                       "sourcedId" : "..String..",
142                       "type" : "user"
143                    }
144                    },
145                    "sessionsAffected" : [ "..String..", ..., "..String.." ],
146                    "classesAffected" : [ "..String..", ..., "..String.." ]
147                 },
148                 {...absences 2/absenceDetailsSet 2...},
149                 {...absences 2/absenceDetailsSet 2...}
150             ],
151             "absenceAdjustmentSet" : [
152                {
153                   "identifier" : "..String..",
154                   "registeredInfo" : {
155                      "comment" : "..String..",
156                      "time" : "..Date/Time..",
157                      "byUserId" : {
158                         "href" : "..URI..",
159                         "sourcedId" : "..String..",
160                         "type" : "user"
161                      }
162                   },
163                   "days" : ..Number(Integer)..,
164                   "minutes" : ..Number(Integer)..,
165                   "term" : {
166                      "href" : "..URI..",
167                      "sourcedId" : "..String..",
168                      "type" : "academicSession"
169                   }
170                },
171                {...absences 2/absenceAdjustmentSet 2...},
172                {...absences 2/absenceAdjustmentSet 2...}
173             ]
174        },
175        {...absences 3...}
176     ]
177  }

In the example above there are 2 absence structures i.e. lines (003-088) and (089-174). Each absence contains an absenceDetailsSet and absenceAdjustmentSet properties.

An example payload for the request 'getSummaryAbsence()' is shown below.

001  {
002     "absence" :
003        {
004           "sourcedId" : "5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d-a7c9c25e-c959-443f-a497-192587ff811a-673",
005           "status" : "active"",
006           "dateLastModified" : "2022-01-14T11:37:13.166Z",
007           "metadata" : {
008              "..permitted extension point.." : "..user defined value.."
009           },
010           "totalDaysAbsent" : 0,
011           "totalMinutesAbsent" : 0,
012           "deductedDaysAbsent" : 0,
013           "deductedMinutesAbsent" : 0,
014           "adjustedDaysAbsent" : 0,
015           "adjustedMinutesAbsent" : 0,
016           "accumulatedDaysAbsent" : 0,
017           "accumulatedMinutesAbsent" : 0,
018           "user" : {
019              "href" : "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/users/a7c9c25e-c959-443f-a497-192587ff811a",
020              "sourcedId" : "a7c9c25e-c959-443f-a497-192587ff811a",
021              "type" : "user"
022           },
023           "school" : {
024              "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/schools/5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d",
025              "sourcedId" : "5d70fb2a-6bdf-4281-85a8-4adb2bf9f17d",
026              "type" : "org"
027           },
028           "term" : {
029              "href" : "http://localhost:4004/api/cadf58be-8a62-49f0-9722-638748f8449f/ims/oneroster/v1p1/academicSessions/673?filter=type='term'",
030              "sourcedId" : "673",
031              "type" : "academicSession"
032           },
033        }    
034  }

In the example above the absence structure is presented in lines (003-033).

The absence data is supplied in the context of a Term. It is the consumers responsibility to analyse and collate this information to establish the absence information for a school year.

5.2 Example Payloads for the New AfterSchool and ChildCare Endpoints

New endpoints have been added to support the management of access to information about AfterSchool and Childcare activities. An example of the payload in response to a 'getAfterSchool()' request (/afterschools/AFTERSCHOOL_001) is shown below.

001  {
002     "org" : {
003         "sourcedId" : "AFTERSCHOOL_001",
004         "status" : "active",
005         "dateLastModified" : "20230505T00:00:00.000Z",
006         "name" : "AFTER SCHOOL SPECIAL",
007         "type" : "ext:afterSchool",
008         "identifier" : "928619516",
009         "parent" : {
010             "href" : "...URI...",
011             "sourcedId" : "AFTERSCHOOL_ORG_1001",
012             "type" : "org"
013         }
014     }
015  }

An example of the payload in response to a 'getChildcare()' request (/afterschools/CHILDCARE_001) is shown below.

001  {
002     "org" : {
003         "sourcedId" : "CHILDCARE_001",
004         "status" : "active",
005         "dateLastModified" : "20230505T00:00:00.000Z",
006         "name" : "Child Care Education",
007         "type" : "ext:childCare",
008         "identifier" : "984636539",
009         "parent" : {
010             "href" : "...URI...",
011             "sourcedId" : "CHILDCARE_ORG_1001",
012             "type" : "org"
013         }
014     }
015  }

5.3 Example Payloads for the Definition of a Group

Support for the definition of groups has been added in this Profile (this requires the use of 'Ghost Course'). An example of the definition of a 'Group' and the equivalent definition of the referenced 'Course' is shown below.

001  {
002     "class": {
003        "sourcedId": "CLASS_01",
004        "status": "active",
005        "dateLastModified": "20230105T00:00:00.000Z",
006        "title" : "Algebra",
007        "classType": "ext:specialEducation",
008        "course" : {
009           "href" : "...URI...",
010           "sourcedId" : "COURSE_101",
011           "type" : "course"
012        },
013        "school" : {
014           "href" : "...URI...",
015           "sourcedId" : "ORG_01",
016           "type" : "org"
017        }
018     }
019  }

The definition of the Group (a type of Class) is shown in the payload above. The type of class is shown in line (007). The corresponding Course link is shown in lines (008-012). The payload for the corresponding Course is shown below.

001  {
002     "course": {
003        "sourcedId": "COURSE_101",
004        "status": "active",
005        "dateLastModified": "20230105T00:00:00.000Z",
006        "title" : "Introduction to Science",
007        "schoolYear" : {
008           "href" : "..URI..",
009           "sourcedId" : "ACADEMICSESSION_01",
010           "type" : "academicSession"
011        },
012        "courseCode" : "Ghost Course"
013     }
014  }

The Course is identified by its sourcedId in line (003). The identification of this as a Course for a Group is denoted by the assignment of the value Ghost Course for the property courseCode in line (012).

5.4 Example Payloads for the Definition of a Grep Group

Support for the definition of Grep groups has been added in this Profile (this requires the use of 'Ghost Course'). An example of the definition of a 'Grep Group' and the equivalent definition of the referenced 'Course' is shown below.

001  {
002     "class": {
003        "sourcedId": "CLASS_01",
004        "status": "active",
005        "dateLastModified": "20230105T00:00:00.000Z",
006        "title" : "Algebra",
007        "classType": "ext:grepGroup",
008        "course" : {
009           "href" : "...URI...",
010           "sourcedId" : "COURSE_101",
011           "type" : "course"
012        },
013        "school" : {
014           "href" : "...URI...",
015           "sourcedId" : "ORG_01",
016           "type" : "org"
017        }
018        "metadata" : {      
019            "1edtech.grepGroups" : [
020                {
021                    "1edtech.grepType" : "aarstrinn",
022                    "1edtech.code" : "aarstrinn9",
023                    "1edtech.description" : "Niende årstrinn",
024                    "1edtech.vocabName" : "GREP",
025                    "1edtech.uri" : "http://psi.udir.no/kl06/aarstrinn8" 
026                }
027            ]
028        }
030     }
031  }

The definition of the Grep Group is shown in the payload above. The type of class is shown in line (007). The corresponding Course link is shown in lines (008-012). The data about the Grep Group is shown in the metadata property in lines (018-028). The payload for the corresponding Course is shown below.

001  {
002     "course": {
003        "sourcedId": "COURSE_101",
004        "status": "active",
005        "dateLastModified": "20230105T00:00:00.000Z",
006        "title" : "Introduction to Science",
007        "schoolYear" : {
008           "href" : "..URI..",
009           "sourcedId" : "ACADEMICSESSION_01",
010           "type" : "academicSession"
011        },
012        "courseCode" : "Ghost Course"
013     }
014  }

The Course is identified by its sourcedId in line (003). The identification of this as a Course for a Group is denoted by the assignment of the value Ghost Course for the property courseCode in line (012).

5.5 Using the Org Type/Subtype Capability

Support for the assignment of subtypes for an Org of type school has been added. An example of using the type/subtype approach in the 'Org' class is shown below.

001  {
002     "org" : {
003         "sourcedId" : "ORG_02",
004         "status" : "active",
005         "dateLastModified" : "20230605T00:00:00.000Z",
006         "metadata" : {
007             "1edtech.schoolType" : "upperSecondarySchool"
009         }
010         "name" : "Elvebakken videregående skole",
011         "type" : "school",
012         "identifier" : "111 222 333"         
013     }
014  }

The key relationship is that the org is of type school (line 011) with a subtype of upperSecondarySchool defined in the extension metadata in lines (006-009).

5.6 Using the SubjectCodes Extension

A new structure to enable identification of the subject codes assigned to a Class and/or Course has been added. An example of the use of the 1edtech.subjectCodes property in the metadata extension for either a class or course is shown below.

001  {
002     "metadata" : {      
003         "1edtech.subjectCodes" : [
004             {
005                 "1edtech.code": "MAT0004", 
006                 "1edtech.description": "Matematikk 4. årstrinn", 
007                 "1edtech.vocabName": "GREP",
008                 "1edtech.uri": "http://psi.udir.no/kl06/MAT0004" 
009             },
010             {
011                  "1edtech.code": "AENG101", 
012                  "1edtech.description": "Engelsk skriftlig, forb min.spr", 
013                  "1edtech.vocabName": "VIGO" 
014             }
015         ]
016     }        
017  }

5.7 Using the Language Identification Extension

An example of the use of the language extension in an 'class' JSON payload is shown below. In the example the 1edtech.language property has been entered under the metadata property and given a value of 'es-ES' as per line(007).

001  {
002     "class" : {
003         "sourcedId" : "CLASS_01",
004         "status" : "active",
005         "dateLastModified" : "20200505T00:00:00.000Z",
006         "metadata" : {
007             "1edtech.language" : "es-ES"
008         },
009         "title" : "Literatura Española",
010         "subjects" : [ "Miguel de Cervantes","Federico García Lorca","Rosalía de Castro" ],
011         "course" : {
012             "href" : "...URI...",
013             "sourcedId" : "COURSE_01",
014             "type" : "course"
015         },
016         "school" : {
017             "href" : "...URI...",
018             "sourcedId" : "ORG_01",
019             "type" : "org"
020         }
021     }
022  }

5.8 Using the UserIds Vocabulary

An extensible enumerated vocabulary for the supported types of userId has been created. An example of the use of the new vocabulary for the user.userIds.type property is shown below.

001  {
002     "user" : {
003        "sourcedId" : "USER_01",
004        "status" : "active",
005        "dateLastModified" : "20230105T00:00:00.000Z",
006        "givenName" : "Bruce",
007        "familyName" : "Wayne",
008        "userIds" : [
009           { "type" : "feideID",
010             "identifier" : "brucewayne@skotthyllkommune.no"
011           },
012           { "type" : "username",
013             "identifier" : "brucewayne"
014           }
015        ],
016        "roles" : [...],
017     }
018  }

Examples of the use of this new user.userIds.type vocabulary is shown lines (009) and (013).

5.9 Using the Identifier Property in the Org Class

For this profile the value space for the identifier for an Org MUST be a valid "organisasjonsnummer" i.e. the legal organization number. An example of using the identifier property in the 'Org' class is shown below.

001  {
002     "org" : {
003         "sourcedId" : "ORG_01",
004         "status" : "active",
005         "dateLastModified" : "20230505T00:00:00.000Z",
006         "name" : "Halden",
007         "type" : "ext:municipality",
008         "identifier" : "959 159 092"
009     }
010  }

The key relationship is that the org is of type (line 007) ext:municipality with a name (line 006) of Halden and the formal identifier (line 008) of 3001.

During the development of this Profile there was discussion on whether or not to support the alternative registration authorities e.g. [ISO6523]. It was agreed that if other registries are to be used then a metadata extension field will be used to identify the new authority. An example is shown below:

001  {
002     "org" : {
003         "sourcedId" : "ORG_01",
004         "status" : "active",
005         "dateLastModified" : "20230505T00:00:00.000Z",
006         "metadata" : {
007             "1edtech.idAuthority" : "iso6523-actorid-upis"
008         }
009         "name" : "Halden",
010         "type" : "ext:municipality",
011         "identifier" : "0192:991825827"
012     }
013  }

The extension field 1edtech.idAuthority is added (lines 006-008) to indicate that the authority for the registry is [ISO6523].

5.10 Using the New School Identifier and Code Properties in the Org Class

An example of the new school identifier and code are contained within the metadata extension attribute.

001  {
002     "org" : {
003         "sourcedId" : "ORG_02",
004         "status" : "active",
005         "dateLastModified" : "20230605T00:00:00.000Z",
006         "metadata" : {
007             "1edtech.schoolVIGOID" : "...example VIGO identifier...",
008             "1edtech.schoolPASCode" : "...example PAS Code..."
009         }
010         "name" : "Elvebakken videregående skole",
011         "type" : "school",
012         "identifier" : "111 222 333"         
013     }
014  }

The VIGO identifier and PAS code are shown in lines (007-008) respectively.

5.11 Using the Grades Vocabulary

For this profile the vocabulary for the grades attribute MUST be defined as a JSON-encoded Vocabulary (URI). An example of using the new vocabulary is shown below.

001  {
002      "course" : {
003          "sourcedId" : "COURSE_02",
004          "status" : "active",
005          "dateLastModified" : "20230505T00:00:00.000Z",
006          "title" : "Norwegian",
007          "schoolYear" : {
008             "href" : "..URI..",
009              "sourcedId" : "ACADEMICSESSION_01",
010              "type" : "academicSession"
011          },
012          "courseCode" : "NORWEGIAN01",
013          "grades" : ["http://psi.udir.no/laereplan/aarstrinn/aarstrinn8",
014                      "http://psi.udir.no/laereplan/aarstrinn/aarstrinn9"]
014      }
015  }

The value for the grades attribute is shown in lines (013-014).

5.12 An Example of Adding Metadata About the Role for a User

There are some situations where proprietary information is required about the role for a user. The Role class does not support extensions. The recommended practice for adding such new information is to use the associated userProfile.credentials property. An example of this approach is shown below.

001  {
002     "user" : {
003        "sourcedId" : "USER_01",
004        "status" : "active",
005        "dateLastModified" : "20230105T00:00:00.000Z",
006        "givenName" : "Bruce",
007        "familyName" : "Wayne",
008        "userIds" : [
009           { "type" : "feideID",
010             "identifier" : "brucewayne@skotthyllkommune.no"
011           },
012           { "type" : "username",
013             "identifier" : "brucewayne"
014           }
015        ],
016        "roles" : [
017           {
018               "roleType" : "primary",
019               "role" : "student",
020               "org" : {
021                    "href" : "..URI..",
022                    "sourcedId" : "ORGID01",
023                    "type" : "org"
024                   },
025                   "userProfile" : "WayneProfile01",
026             }
027        ],
028        "userProfiles" : [
029           {
030               "profileId" : "WayneProfile01",
031               "profileType" : "RoleExtension",
032               "vendorId" : "SYSTEM01",
033               "credentials" : [
034                    {
035                       "type" : "rolextension",
036                        "username" : "brucewayne",
037                        "1edtech.role.ext1" : "..user defined value..",
038                        "1edtech.role.ext2" : "..user defined value..",
039                     },
040                ]
041            }
042        ]
043     }
044  }

The new role data is shown in lines (037-038). The link to this information and the associated role is through the profileId (line 030) and the reference to it using the userProfile property in line (025) for the role defined in lines (017-026).

5.13 Collecting Absence Data for Students Moving Schools

There are some cases when a student may be attending more than one school. For example, a student may move schools during the academic year (this may include moving between schools in different municipalities). Another example is when a student may attend classes for a particular subject in a school different to that which they attend for most of their classes. Therefore, collection of the total absences by a student must be obtained across multiple schools. There are two types of endpoint in Absence Service:

  • Endpoints that read all of the collections e.g. ‘getAllSummaryAbsences’ and so information for a student is determined by the set of schools supported by the Service Provider
  • Endpoints that read information specific to a single school e.g. getSummaryAbsenceSetForSchool’ and so information for a student is only with respect to the identified school.

The data models for the absence service provide information for a specific student, at a specific school for a specific term. To cover the scenario of when a student attends more than one school, an application that needs to obtain the full set of absences for a student MUST use one of the following approaches:

  • When using the endpoints for reading a full collection the application MUST search all known Service Providers and correlate the data for a specific student. This requires each Service Provider to use a common set of ‘sourcedIds’ for the students. Each Service Provider will be responsible for its own set of Schools i.e. the set of supported schools will depend on the teaching and learning deployment coverage. The consuming application is responsible for the correct correlation of data for each student
  • When using the single school specific endpoints the application MUST search all of the known schools for information about the specific student. This can be achieved by either issuing a ‘getDetailAbsenceSetForStudentInSchool’ for each school or by issuing the ‘getDetailAbsenceSetForSchool’ for each school and searching the data for specific students. For complete coverage, the consuming application MUST interrogate all of the known Service Providers.

The key point is that it is the responsibility of the consuming application to search the relevant set of Service Providers. Awareness of such a scenario may be supplied to the application using information exchange not covered by the OneRoster specification or by the application undertaking an awareness process that uses a combination of the two approaches described above.

6. Conformance & Certification

The Norwegian OneRoster 1.2 REST API Conformance program provides conformance testing for:

  • Systems that act as OneRoster Service Providers – these are, primarily, systems that store OneRoster data and MUST enable that data to be returned to requests from a consumer;
  • Systems that act as OneRoster Service Consumers – these are, primarily, systems that enable a OneRoster repository to be accessed and MUST enable requests to be made by the consumer.

For conformance the endpoint functionality is split into five classifications:

  • Rostering endpoints – the endpoints that handle rostering information, in particular, data about people, classes, courses, and enrollments;
  • Gradebooks endpoints – the endpoints that handle gradebooks information, in particular, data about results, lineItems and categories;
  • Assessment Results endpoints – the endpoints that handle detailed information about results, in particular, data about results, lineItems and categories;
  • Resources endpoints – the endpoints that handle information about OneRoster resources;
  • Absences endpoints – the endpoints that handle information about student absence from school attendance.

For the REST binding ALL systems MUST support at LEAST one of the 'Rostering', 'Resources', 'Gradebooks', 'Assessment Results' and 'Absences' set of endpoints.

6.1 Conformance Testing Process

The process for conformance testing implementations of OneRoster includes the following:

  • Go to the 1EdTech Conformance Test Suites for REST API testing. Conformance Test Suite links are available in the 1EdTech LIS Alliance and the relevant link details are given later in this section of this document;
  • Follow the onscreen instructions to run the tests;
  • Once the test has been successfully run, submit a print out of the test results along with the following information to conformance@1edtech.org:
    1. Your Name
    2. Your Organization
    3. Your Product Name and Version
    4. Date the Product was tested
    5. Whether you are a Service Provider or a Service Consumer
    6. The set of operational modes that are supported - all systems must support at least one core service ('Rostering', 'Resources', 'Gradebook', 'Assessment Results' and/or 'Absences').

All Tests for the appropriate operational modes must be passed successfully to be considered 1EdTech compliant.

6.1.1 Requirements for OneRoster v1.2 Conformance

All of the relevant REST API Tests must be passed successfully to be considered 1EdTech OneRoster compliant. In the Norwegian Profile there are five core functional modes:

  • Rostering - the enrolment of people in classes (several new endpoints added as part of the Norwegian Profile);
  • Resources - the association of teaching/learning resources with courses/classes;
  • Gradebooks - the scores/grades for a learner who has completed some assessment of their learning activity on a class/course;
  • Assessment Results - the detailed scores/grades for a learner who has completed some assessment of their learning activity;
  • Absences - reporting of student absence from school attendance (added as part of the Norwegian Profile)

For the REST binding ALL systems MUST support at LEAST one of the 'Rostering', 'Resources', 'Gradebooks', 'Assessment Results' and 'Absences' modes.

6.1.2 OneRoster Conformance Mark

After you have submitted your successful conformance information to conformance@1edtech.org, and received confirmation and a registration number from 1EdTech you may then apply the appropriate conformance mark. The 1EdTech conformance chart will list your conformance details. If you have any questions, please feel free to contact us at any point.

Membership in the OneRoster/Learning Information Services Alliance is the only way to achieve official conformance to the OneRoster standard. Products without a 1EdTech Conformance Registration Number are not considered to be compliant by 1EdTech.

6.2 Service Provider Certification

In the tabular summaries of the endpoint requirements the following should be noted:

  • For a OneRoster 1.2 Rostering implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/roster/v1p2';
  • For a OneRoster 1.2 Resource implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/resource/v1p2';
  • For a OneRoster 1.2 Gradebook implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/gradebook/v1p2';
  • For a OneRoster 1.2 Assessment Result implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/gradebook/v1p2';
  • For a OneRoster Absences 1.0 implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/absences/v1p0';
  • The 'Mode' is used denote whether the system is responsible for issuing the request (Init) or responding to the request (Resp).

6.2.1 Rostering Endpoint Compliance

For service provider rostering conformance the endpoints listed in following Table MUST be supported.

The endpoints that MUST be supported by a compliant Norwegian K-12 Profile OneRoster rostering service provider.
Service Call Endpoint HTTP Verb Mode
getAllAcademicSessions /academicSessions GET Resp
getAcademicSession /academicSessions/{id} GET Resp
getAllClasses /classes GET Resp
getClass /classes/{id} GET Resp
getAllCourses /courses GET Resp
getCourse /courses/{id} GET Resp
getAllEnrollments /enrollments GET Resp
getEnrollment /enrollments/{id} GET Resp
getAllGradingPeriods /gradingPeriods GET Resp
getGradingPeriod /gradingPeriods/{id} GET Resp
getAllOrgs /orgs GET Resp
getOrg /orgs/{id} GET Resp
getAllSchools /schools GET Resp
getSchool /schools/{id} GET Resp
getAllStudents /students GET Resp
getStudent /students/{id} GET Resp
getAllTeachers /teachers GET Resp
getTeacher /teachers/{id} GET Resp
getAllTerms /terms GET Resp
getTerm /terms/{id} GET Resp
getAllUsers /users GET Resp
getUser /users/{id} GET Resp

Support for ANY of the other endpoints and service modes is OPTIONAL. For 'GET' requests a service provider must supply all of the required data fields for the action and may supply any of the optional data fields.

Note that the none of the newly added AfterSchool and Childcare endpoints are listed in the above Table i.e. support of those endpoints is OPTIONAL whereas a Provider MUST support the same set of endpoints as per the base OneRoster Rostering Service.

6.2.2 Resources Endpoint Compliance

For service provider resources conformance the endpoints listed in following Table MUST be supported.

The endpoints that MUST be supported by a compliant Norwegian K-12 Profile OneRoster resources service provider.
Service Call Endpoint HTTP Verb Mode
getAllResources /resources GET Resp
getResource /resources/{id} GET Resp

Support for ANY of the other endpoints and service modes is OPTIONAL. For 'GET' requests a service provider must supply all of the required data fields for the action and may supply any of the optional data fields.

6.2.3 Gradebook Endpoint Compliance

For service provider gradebook conformance the endpoints listed in following Table MUST be supported.

The endpoints that MUST be supported by a compliant Norwegian K-12 Profile OneRoster gradebook service (PULL) provider.
Service Call Endpoint HTTP Verb Mode
getAllCategories /categories GET Resp
getCategory /categories/{id} GET Resp
getAllLineItems /lineItems GET Resp
getLineItem /lineItems/{id} GET Resp
getAllResults /results GET Resp
getResult /results/{id} GET Resp
getAllScoreScales /scoreScales GET Resp
getScoreScale /scoreScales/{id} GET Resp

Support for ANY of the other endpoints and service modes is OPTIONAL. For 'GET' requests a service provider must supply all of the required data fields for the action and may supply any of the optional data fields.

The endpoints that MUST be supported by a compliant OneRoster gradebook service (PUSH) provider (data is pushed to the provider).
Service Call Endpoint HTTP Verb Mode
putLineItem /lineItems/{id} PUT Init
putResult /results/{id} PUT Init

Support for ANY of the other endpoints and service modes is OPTIONAL.

6.2.4 Assessment Results Endpoint Compliance

For service provider gradebook conformance the endpoints listed in either of the following Tables MUST be supported.

The endpoints that MUST be supported by a compliant OneRoster assessment results service (PULL) provider (data is pulled from the provider).
Service Call Endpoint HTTP Verb Mode
getAllAssessmentLineItems /assessmentLineItems GET Resp
getAssessmentLineItem /assessmentLineItems/{id} GET Resp
getAllAssessmentResults /assessmentResults GET Resp
getAssessmentResult /assessmentResults/{id} GET Resp

Support for ANY of the other endpoints and service modes is OPTIONAL. For a 'GET' request a service provider must supply all of the required data fields for the action and may supply any of the optional data fields.

The endpoints that MUST be supported by a compliant OneRoster assessment results service (PULL) provider (data is pushed to the provider).
Service Call Endpoint HTTP Verb Mode
putAssessmentLineItem /assessmentResults/{id} PUT Init
putAssessmentResult /assessmentResults/{id} PUT Init

Support for ANY of the other endpoints and service modes is OPTIONAL.

6.2.5 Student Absences Endpoint Compliance

For service provider student absences conformance the endpoints listed in following Table MUST be supported.

The endpoints that MUST be supported by a compliant Norwegian K-12 Profile OneRoster student absences service provider.
Service Call Endpoint HTTP Verb Mode
getSummaryAbsenceForSchool /schools/{schoolId}/absences/summary/{Id} GET Resp

The shaded rows denote the endpoints introduced in OR 1.2 Norwegian K-12 Profile.

Support for ANY of the other endpoints and service modes is OPTIONAL. For 'GET' requests a service provider must supply all of the required data fields for the action and may supply any of the optional data fields.

6.3 Service Consumer Certification

In the tabular summaries of the endpoint requirements the following should be noted:

  • For a OneRoster 1.2 Rostering implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/roster/v1p2';
  • For a OneRoster 1.2 Resource implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/resource/v1p2';
  • For a OneRoster 1.2 Gradebook implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/gradebook/v1p2';
  • For a OneRoster 1.2 Assessment Result implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/gradebook/v1p2';
  • For a OneRoster Absences 1.0 implementation the 'Endpoint' string should be appended to the string '/ims/oneroster/absences/v1p0';
  • The 'Mode' is used denote whether the system is responsible for issuing the request (Init) or responding to the request (Resp).

6.3.1 Rostering Endpoint Compliance

For service consumer rostering conformance AT LEAST ONE of the endpoints listed in the Table below MUST be supported.

The set of endpoints for which AT LREAST ONE MUST be supported by a compliant OneRoster rostering service consumer.
Service Call Endpoint HTTP Verb Mode
getAllAcademicSessions /academicSessions GET Init
getAcademicSession /academicSessions/{sourcedId} GET Init
getAllClasses /classes GET Init
getClass /classes/{sourcedId} GET Init
getAllCourses /courses GET Init
getCourse /courses/{sourcedId} GET Init
getAllEnrollments /enrollments GET Init
getEnrollment /enrollments/{sourcedId} GET Init
getAllOrgs /orgs GET Init
getOrg /orgs/{sourcedId} GET Init
getAllUsers /users GET Init
getUser /users/{sourcedId} GET Init

Support for ANY of the other endpoints and service modes is OPTIONAL. For a 'GET' request a service consumer must support all of the required and optional data fields in the corresponding received records.

Note that the none of the newly added AfterSchool and Childcare endpoints are listed in the above Table i.e. support of those endpoints is OPTIONAL whereas a Consumer MUST support at least one of set of endpoints as per the base OneRoster Rostering Service.

6.3.2 Resources Endpoint Compliance

For service consumer resources conformance the endpoints listed in Table below MUST be supported.

The endpoints that MUST be supported by a compliant OneRoster resources service consumer.
Service Call Endpoint HTTP Verb Mode
getAllResources /resources GET Init
getResource /resources/{id} GET Init

Support for ANY of the other endpoints and service modes is optional. For a 'GET' request a service consumer must support all of the required and optional data fields in the corresponding received records.

6.3.3 Gradebooks Endpoint Compliance

For service consumer gradebooks conformance the endpoints listed in either of the Tables below MUST be supported.

The endpoints that MUST be supported by a compliant OneRoster gradebooks service (PULL) consumer.
Service Call Endpoint HTTP Verb Mode
getAllCategories /categories GET Init
getAllLineItems /lineItems GET Init
getAllResults /results GET Init
getAllScoreScales /scoreScales GET Init

Support for ANY of the other endpoints and service modes is OPTIONAL. For a 'GET' request a service consumer must support all of the required and optional data fields in the corresponding received records.

The endpoints that MUST be supported by a compliant OneRoster gradebooks service (PUSH) consumer (data is pushed to the provider).
Service Call Endpoint HTTP Verb Mode
putLineItem /lineItems/{id} PUT Resp
putResult /results/{id} PUT Resp

Support for ANY of the other endpoints and service modes is OPTIONAL.

6.3.4 Assessment Results Endpoint Compliance

For service consumer assessment results conformance the endpoints listed in either of the Tables below MUST be supported.

The endpoints that MUST be supported by a compliant OneRoster assessment results (PULL) service consumer.
Service Call Endpoint HTTP Verb Mode
getAllAssessmentLineItems /assessmentLineItems GET Init
getAllAssessmentResults /assessmentResults GET Init

Support for ANY of the other endpoints and service modes is OPTIONAL. For a 'GET' request a service consumer must support all of the required and optional data fields in the corresponding received records.

The endpoints that MUST be supported by a compliant OneRoster assessment results service (PUSH) consumer (data is pushed to the provider).
Service Call Endpoint HTTP Verb Mode
putAssessmentLineItem /assessmentLineItems/{id} PUT Resp
putAssessmentResult /assessmentResults/{id} PUT Resp

Support for ANY of the other endpoints and service modes is OPTIONAL.

6.3.5 Student Absences Endpoint Compliance

For service consumer student absences conformance the endpoints listed in Table below MUST be supported.

The endpoints that MUST be supported by a compliant OneRoster student absences service consumer.
Service Call Endpoint HTTP Verb Mode
getSummaryAbsenceForSchool /schools/{schoolId}/absences/summary/{Id} GET Init

The shaded rows denote the endpoints introduced in OR 1.2 Norwegian K-12 Profile.

Support for ANY of the other endpoints and service modes is optional. For a 'GET' request a service consumer must support all of the required and optional data fields in the corresponding received records.

6.4 OneRoster Norwegian Profile Certifications

6.4.1 Service Provider Certification

The functional capabilities of such systems are:

  • The OpenAPI file(s) that describe the functionality of the available OneRoster 1.2 services MUST be published at the endpoint base URL. This must be a valid OpenAPI 3.0 JSON file. The name and location of these files are:
    • Rostering Service - "...hostname..."/ims/oneroster/rostering/v1p2/discovery/imsorv1p2_rostering_openapi3_v1p0.json
    • Resources Service - "...hostname..."/ims/oneroster/resources/v1p2/discovery/imsorv1p2_resources_openapi3_v1p0.json
    • Gradebook Service - "...hostname..."/ims/oneroster/gradebook/v1p2/discovery/imsorv1p2_gradebook_openapi3_v1p0.json
    • Absences Service - "...hostname..."/ims/oneroster/gradebook/v1p0/discovery/imsorv1p0_absences_openapi3_v1p0.json
  • At least one of the rostering, gradebooks, assessment results, resources and student absences set of endpoints MUST be supported;
  • If rostering is supported, all of the required endpoints MUST be supported;
  • If rostering is supported, any of the optional endpoints MAY be supported;
  • If resources is supported, all of the required endpoints MUST be supported;
  • If resources is supported, any of the optional endpoints MAY be supported;
  • If gradebooks is supported, all of either the pull or the push modes required endpoints MUST be supported;
  • If gradebooks is supported, any of the optional endpoints may be supported (from both the pull and push modes);
  • If assessment results is supported, all of either the pull or the push modes required endpoints MUST be supported;
  • If assessment results is supported, any of the optional endpoints MAY be supported (from both the pull and push modes);
  • If student absences is supported, all of the required endpoints MUST be supported;
  • If student absences is supported, any of the optional endpoints MAY be supported;
  • They MUST supply all of the required data fields;
  • They MAY supply any of the optional data fields;
  • They MUST use the extension data fields as required for the support of the new data fields defined in this Profile;
  • They MAY use the extension data fields to provide proprietary data;
  • They MUST support the endpoint payload pagination mechanism for all responses that provide a collection in the payload;
  • They MUST support the endpoint payload filtering mechanism for all responses that provide a collection in the payload. When the rostering service is supported the following filtering rules MUST be supported:-
    • Filtering for students using the filter of "filter=roles.role~'student'" on the "getAllUsers()" endpoint
    • Filtering for teachers using the filter of "filter=roles.role~'teacher'" on the "getAllUsers()" endpoint
    • Filtering for grading periods using the filter of "filter=type='gradingPeriod'" on the "getAllAcademicSessions()" endpoint
    • Filtering for terms using the filter of "filter=type='term'" on the "getAllAcademicSessions()" endpoint
    • Filtering for schools using the filter of "filter=type='school'" on the "getAllAcademicSessions()" endpoint
  • They MUST support the endpoint payload sorting mechanism for all responses that provide a collection in the payload;
  • They MUST support the endpoint payload field selection mechanism for all responses that provide a collection or a singleton in the payload;
  • They MUST support the OAuth 2.0 Bearer Token authentication mechanism.

Systems that wish to undertake conformance testing as a Service Provider for the Norwegian Profile should use the conformance test system located at: https://validate.imsglobal.org/NK12_ORv1p2_CTS_ServiceProvider/

6.4.2 Service Consumer Certification

The functional capabilities of such systems are:

  • At least one of the rostering, gradebooks, assessment results and resources set of endpoints MUST be supported;
  • If rostering is supported, all of the required endpoints MUST be supported;
  • If rostering is supported, any of the optional endpoints MAY be supported;
  • If resources is supported, all of the required endpoints MUST be supported;
  • If resources is supported, any of the optional endpoints MAY be supported;
  • If gradebooks is supported, all of either the pull or the push modes required endpoints MUST be supported;
  • If gradebooks is supported, any of the optional endpoints MAY be supported (from both the pull and push modes);
  • If assessment results is supported, all of either the pull or the push modes required endpoints MUST be supported;
  • If assessment results is supported, any of the optional endpoints MAY be supported (from both the pull and push modes);
  • If student absences is supported, all of the required endpoints MUST be supported;
  • If student absences is supported, any of the optional endpoints MAY be supported;
  • They MUST support all of the required data fields;
  • They MUST support all of the optional data fields;
  • They MUST process the extension data fields as required for the support of the new data fields defined in this Profile;
  • They MAY process extension data fields when used to contain proprietary data;
  • They MUST support the endpoint payload pagination mechanism for all requests that provide a collection in the response payload;
  • They MUST support the endpoint payload filtering mechanism for all requests that provide a collection in the response payload;
  • They MUST support the endpoint payload sorting mechanism for all requests that provide a collection in the response payload;
  • They MUST support the endpoint payload field selection mechanism for all requests that provide a collection or a singleton in the response payload;
  • They MUST support the OAuth 2.0 Bearer Token authentication mechanism;
  • MAY read the Service Provider's OpenAPI service description file(s) to obtain the details of the service(s) made available by that provider.

Systems that wish to undertake conformance testing as a Service Consumer should use the conformance test system located at: https://certification.imsglobal.org/certification/or12cts

6.4.3 Comparison of the Certifications

A comparison of the available certifications for the defined OneRoster endpoints is shown in Table 4.13. In this table the key is:

  • 'C' denotes a service consumer;
  • 'P' denotes a service provider;
  • 'Init' denotes that the end-system issues the request (a shaded box denotes that support for the endpoint is required for that mode and a black cell indicates that AT LEAST ONE of those endpoints MUST be supported);
  • 'Resp' denotes that the end-system responds to the request (a shaded box denotes that support for the endpoint is required for that mode);
  • '-' denotes that the endpoint is not available to that operational mode.

Those rows that are shaded under the 'Service Call' column indicates the new endpoints added in this Profile.

A comparison of the certifications available with respect to the defined OneRoster endpoints.
Service Call Endpoint HTTP Verb Rostering Gradebooks Assessment Results Resources Absences
C P C P C P C P C P
getAllDetailAbsences /absences/detail GET - - - - - - - - Init Resp
getDetailAbsence /absences/detail/{id} GET - - - - - - - - Init Resp
getAllSummaryAbsences /absences/summary GET - - - - - - - - Init Resp
getSummaryAbsence /absences/summary/{id} GET - - - - - - - - Init Resp
getAllAcademicSessions /academicSessions GET Init Resp - - - - - - - -
getAcademicSession /academicSessions/{id} GET Init Resp - - - - - - - -
getAllAfterSchools /afterschools GET Init Resp - - - - - - - -
getAfterSchool /afterschools/{id} GET Init Resp - - - - - - - -
getAcademicSessionSetForAfterSchool /afterschools/{afterschool_id}/academicsessions GET Init Resp - - - - - - - -
getAcademicSessionForAfterSchool /afterschools/{afterschool_id}/academicsessions/{academicsession_id} GET Init Resp - - - - - - - -
getClassSetForAfterSchool /afterschools/{afterschool_id}/classes GET Init Resp - - - - - - - -
getClassForAfterSchool /afterschools/{afterschool_id}/classes/{class_id} GET Init Resp - - - - - - - -
getStudentSetForClassInAfterSchool /afterschools/{afterschool_id}/classes/{class_id}/students GET Init Resp - - - - - - - -
getTeacherSetForClassInAfterSchool /afterschools/{afterschool_id}/classes/{class_id}/teachers GET Init Resp - - - - - - - -
getEnrollmentSetForAfterSchool /afterschools/{afterschool_id}/enrollments GET Init Resp - - - - - - - -
getEnrollmentForAfterSchool /afterschools/{afterschool_id}/enrollments/{enrollment_id} GET Init Resp - - - - - - - -
getStudentSetForAfterSchool /afterschools/{afterschool_id}/students GET Init Resp - - - - - - - -
getStudentForAfterSchool /afterschools/{afterschool_id}/students/{student_id} GET Init Resp - - - - - - - -
getTeacherSetForAfterSchool /afterschools/{afterschool_id}/teachers GET Init Resp - - - - - - - -
getTeacherForAfterSchool /afterschools/{afterschool_id}/teachers/{teacher_id} GET Init Resp - - - - - - - -
getUserSetForAfterSchool /afterschools/{afterschool_id}/users GET Init Resp - - - - - - - -
getUserForAfterSchool /afterschools/{afterschool_id}/users/{user_id} GET Init Resp - - - - - - - -
getAllChildcares /childcares GET Init Resp - - - - - - - -
getChildcare /childcares/{id} GET Init Resp - - - - - - - -
getAcademicSessionSetForChildcare /childcares/{childcare_id}/academicsessions GET Init Resp - - - - - - - -
getAcademicSessionForChildcare /childcares/{childcare_id}/academicsessions/{academicsession_id} GET Init Resp - - - - - - - -
getClassSetForChildcare /childcares/{childcare_id}/classes GET Init Resp - - - - - - - -
getClassForChildcare /childcares/{childcare_id}/classes/{class_id} GET Init Resp - - - - - - - -
getStudentSetForClassInChildcare /childcares/{childcare_id}/classes/{class_id}/students GET Init Resp - - - - - - - -
getTeacherSetForClassInChildcare /childcares/{childcare_id}/classes/{class_id}/teachers GET Init Resp - - - - - - - -
getEnrollmentSetForChildcare /childcares/{childcare_id}/enrollments GET Init Resp - - - - - - - -
getEnrollmentForChildcare /childcares/{childcare_id}/enrollments/{enrollment_id} GET Init Resp - - - - - - - -
getStudentSetForChildcare /childcares/{childcare_id}/students GET Init Resp - - - - - - - -
getStudentForChildcare /childcares/{childcare_id}/students/{student_id} GET Init Resp - - - - - - - -
getTeacherSetForChildcare /childcares/{childcare_id}/teachers GET Init Resp - - - - - - - -
getTeacherForChildcare /childcares/{childcare_id}/teachers/{teacher_id} GET Init Resp - - - - - - - -
getUserSetForChildcare /childcares/{childcare_id}/users GET Init Resp - - - - - - - -
getUsersForChildcare /childcares/{childcare_id}/users/{user_id} GET Init Resp - - - - - - - -
getAllClasses /classes GET Init Resp - - - - - - - -
getClass /classes/{id} GET Init Resp - - - - - - - -
getResourcesForClass /classes/{class_id}/resources GET - - - - - - Init Resp - -
getStudentsForClass /classes/{class_id}/students GET Init Resp - - - - - - - -
getTeachersForClass /classes/{class_id}/teachers GET Init Resp - - - - - - - -
getAllCourses /courses GET Init Resp - - - - - - - -
getCourse /courses/{id} GET Init Resp - - - - - - - -
getClassesForCourse /courses/{course_id}/classes GET Init Resp - - - - - - - -
getResourcesForCourse /courses/{course_id}/resources GET - - - - - - Init Resp - -
getAllDemographics /demographics GET Init Resp - - - - - - - -
getDemographics /demographics/{id} GET Init Resp - - - - - - - -
getAllEnrollments /enrollments GET Init Resp - - - - - - - -
getEnrollment /enrollments/{id} GET Init Resp - - - - - - - -
getAllGradingPeriods /gradingPeriods GET Init Resp - - - - - - - -
getGradingPeriod /gradingPeriods/{id} GET Init Resp - - - - - - - -
getAllOrgs /orgs GET Init Resp - - - - - - - -
getOrg /orgs/{id} GET Init Resp - - - - - - - -
getAllResources /resources GET - - - - - - Init Resp - -
getResource /resources/{id} GET - - - - - - Init Resp - -
getAllSchools /schools GET Init Resp - - - - - - - -
getSchool /schools/{id} GET Init Resp - - - - - - - -
getDetailAbsenceSetForSchool /schools/{school_id}/absences/detail GET - - - - - - - - Init Resp
getDetailAbsenceForSchool /schools/{school_id}/absences/detail/{absence_id} GET - - - - - - - - Init Resp
getClassesForSchool /schools/{school_id}/classes GET Init Resp - - - - - - - -
getCoursesForSchool /schools/{id}/courses GET Init Resp - - - - - - - -
getEnrollmentsForSchool /schools/{school_id}/enrollments GET Init Resp - - - - - - - -
getEnrollmentsForClassInSchool /schools/{school_id}/classes/{class_id}/enrollments GET Init Resp - - - - - - - -
getStudentsForClassInSchool /schools/{school_id}/classes/{class_id}/students GET Init Resp - - - - - - - -
getStudentsForSchool /schools/{school_id}/students GET Init Resp - - - - - - - -
getTeachersForClassInSchool /schools/{school_id}/classes/{class_id}/teachers GET Init Resp - - - - - - - -
getDetailAbsenceSetForStudentInSchool /schools/{school_id}/students/{student_id}/absences/detail GET - - - - - - - - Init Resp
getDetailAbsenceForStudentInSchool /schools/{school_id}/students/{student_id}/absences/detail/{absence_id} GET - - - - - - - - Init Resp
getSummaryAbsenceSetForSchool /schools/{school_id}/absences/summary GET - - - - - - - - Init Resp
getSummaryAbsenceForSchool /schools/{school_id}/absences/summary/{absence_id} GET - - - - - - - - Init Resp
getSummaryAbsenceSetForStudentInSchool /schools/{school_id}/students/{student_id}/absences/summary GET - - - - - - - - Init Resp
getSummaryAbsenceForStudentInSchool /schools/{school_id}/students/{student_id}/absences/summary/{absence_id} GET - - - - - - - - Init Resp
getTeachersForSchool /schools/{school_id}/teachers GET Init Resp - - - - - - - -
getTermsForSchool /schools/{school_id}/terms GET Init Resp - - - - - - - -
getAllStudents /students GET Init Resp - - - - - - - -
getStudent /students/{id} GET Init Resp - - - - - - - -
getClassesForStudent /students/{student_id}/classes GET Init Resp - - - - - - - -
getAllTeachers /teachers GET Init Resp - - - - - - - -
getTeacher /teachers/{id} GET Init Resp - - - - - - - -
getClassesForTeacher /teachers/{teacher_id}/classes GET Init Resp - - - - - - - -
getAllTerms /terms GET Init Resp - - - - - - - -
getTerm /terms/{id} GET Init Resp - - - - - - - -
getClassesForTerm /terms/{term_id}/classes GET Init Resp - - - - - - - -
getGradingPeriodsForTerm /terms/{term_id}/gradingPeriods GET Init Resp - - - - - - - -
getAllUsers /users GET Init Resp - - - - - - - -
getUser /users/{id} GET Init Resp - - - - - - - -
getClassesForUser /users/{user_id}/classes GET Init Resp - - - - - - - -
getResourcesForUser /users/{user_id}/resources GET - - - - - - Init Resp - -
getAcademicStandardIdsForClass /classes/{classSourcedId}/academicStandardIds GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getAcademicStandardIdsForSchool /schools/{schoolSourcedId}/academicStandardIds GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getAllCategories /categories GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getCategory /categories/{id} GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getCategoriesForClass /classes/{classSourcedId}/categories GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
putCategory /categories/{id} PUT - - Resp
(Push)
Init
(Push)
- - - - - -
deleteCategory /categories/{id} DELETE - - Resp
(Push)
Init
(Push)
- - - - - -
getAllAssessmentLineItems /assessmentLineItems GET - - - - Init
(Pull)
Resp
(Pull)
- - - -
getAssessmentLineItem /assessmentLineItems/{id} GET - - - - Init
(Pull)
Resp
(Pull)
- - - -
putAssessmentLineItem /assessmentLineItems/{id} PUT - - - - Resp
(Push)
Init
(Push)
- - - -
deleteAssessmentLineItem /assessmentLineItems/{id} DELETE - - - - Resp
(Push)
Init
(Push)
- - - -
getAllLineItems /lineItems GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getLineItem /lineItems/{id} GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
postLineItemsForClass /classes/{classSourcedId}/lineItems POST - - Resp
(Push)
Init
(Push)
- - - - - -
postLineItemsForSchool /schools/{schoolSourcedId}/lineItems POST - - Resp
(Push)
Init
(Push)
- - - - - -
putLineItem /lineItems/{id} PUT - - Resp
(Push)
Init
(Push)
- - - - - -
deleteLineItem /lineItems/{id} DELETE - - Resp
(Push)
Init
(Push)
- - - - - -
getLineItemsForClass /classes/{class_id}/lineItems GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getAllAssessmentResults /assessmentResults GET - - - - Init
(Pull)
Resp
(Pull)
- - - -
getAssessmentResult /assessmentResults/{id} GET - - - - Init
(Pull)
Resp
(Pull)
- - - -
putAssessmentResult /assessmentResults/{id} PUT - - - - Resp
(Push)
Init
(Push)
- - - -
deleteAssessmentResult /assessmentResults/{id} DELETE - - - - Resp
(Push)
Init
(Push)
- - - -
getAllResults /results GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getResult /results/{id} GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
postResultsForLineItem /lineItems/{lineItemSourcedId}/results POST - - Resp
(Push)
Init
(Push)
- - - - - -
postResultsForAcademicSessionForClass /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results POST - - Resp
(Push)
Init
(Push)
- - - - - -
putResult /results/{id} PUT - - Resp
(Push)
Init
(Push)
- - - - - -
deleteResult /results/{id} DELETE - - Resp
(Push)
Init
(Push)
- - - - - -
getResultsForClass /classes/{class_id}/results GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getResultsForLineItemForClass /classes/{class_id}/lineItems/{li_id}/results GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getResultsForStudentForClass /classes/{class_id}/students/{student_id}/results GET - - Resp
(Pull)
Init
(Pull)
- - - - - -
getAllScoreScales /scoreScales GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getScoreScale /scoreScales/{id} GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getScoreScalesForClass /classes/{classSourcedId}/scoreScales GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
getScoreScalesForSchool /schools/{schoolSourcedId}/scoreScales GET - - Init
(Pull)
Resp
(Pull)
- - - - - -
putScoreScale /scoreScales/{id} PUT - - Resp
(Push)
Init
(Push)
- - - - - -
deleteScoreScale /scoreScales/{id} DELETE - - Resp
(Push)
Init
(Push)
- - - - - -

A. Summary Use-case Descriptions Specific to the Norwegian K-12 Profile

The contents for each use-case are:

  • Use-case Title – the unique title for the use-case. This should identify the goal as a short active verb phrase;
  • Use-case Local ID – the unique identifier for the use-case in the set of use-cases under development. This identifier does not have to be globally unique;
  • Brief Description – this should provide a concise description of the use-case including its context and scope (the black-box range of the system being described);
  • Level – the level of abstraction of the use-case description using the vocabulary ‘Summary’, ‘Primary Task’ and ‘Subfunction’. Set as ‘Summary’;
  • Actors – identification of the role names of ‘Primary’ and ‘Secondary’ actors (this could be users or software systems themselves e.g. operating system). There must be only one primary actor but there can be any number of secondary actors;
  • Stakeholders – the names of the stakeholders and the primary interest of the stakeholders in the goal described by the use-case;
  • Data Flow – a short explanation of the data flows between the components of the system enabling the use-case;
  • Notes – the notes that will have been referenced within the rest of the table.

A.1 Support for Different Groups (N1)

The use-case description for the support of different groups.
Use-case Title Support for Different Groups.
Use-case Local ID N1
Brief Description A user needs to have a membership / enrolment in different types of groups. In this way the corresponding teaching aid(s) can adapt the UI to fit the different groups and their roles in those groups. A teacher needs a different UI than a student. In Norwegian schooling there are different types of groups, including:
  • Baseclass (basisklasse / basisgruppe / klasse)
  • Subject group (undervisingsgruppe)
  • Other non-subject groups like student council, etc.
A teacher is also a member of all these groups. Groups are also used in Feide and the profile should support those groups.
Level Summary
Actors Primary: Student
Secondary: Teacher, Feide, LMS+Vendor, Teaching Aid+Vendor
Stakeholders School - required to provide Group-based activities and to distribute definition and enrolment on these Groups.
Date Flow This follows the standardized data flow between OneRoster Service Provider(s) and Service Consumer(s).
Notes A number of clarifications are made to the use of OneRoster with respect to the definition of a Group as a type of Class. This requires the definition of 'Ghost Course' to maintain syntactic consistency of a OneRoster payload.

A.2 Support for URIs in a Class/Course (N2)

The use-case description for the support of URIs in a class/course.
Use-case Title Support for URI's in a Class/Course
Use-case Local ID N2
Brief Description Some services need to know the set of educational class/courses/groups and so there must be some way of reading class, course and groups code(s) from the Grep database or other relevant databases/vocabularies. The code is usually an URI. For the most part this is a code for a subject but can also be the grade level. In upper secondary school the terms “education-programme” (utdanningsprogram), “programme-area” (programområde) and “programme-subject” (programfag). These may not fit within the same categories as subject or grade level.
Level Summary
Actors Primary: Service Provider - responsible for distributing the new URIs.
Secondary: the system/tool/app receiving the new URIs.
Stakeholders Grep Database and other Repositories - any supplier of the URIs.
Date Flow This follows the standardized data flow between OneRoster Service Provider(s) and Service Consumer(s).
Notes Use the metadata extension mechanism to support this broader definition of subject codes in Class and Course objects.

A.3 Support for New Roles (N3)

The use-case description for the new roles to be supported.
Use-case Title Support for Different Roles
Use-case Local ID N3
Brief Description For a specific employee or student at a school, access to services is based on the person's role. The person can have different kind of roles in different kind of groups. For example, the role "subject teacher" in one group and "contact teacher" in another. This is also related to the student data for which a teacher should have access. Roles are also defined for access to groups. Roles are also used in Feide and the profile should support these roles. In Norway there are many roles that need to be supported beyond those currently defined in the OneRoster specification.
Level Summary
Actors Primary: Student Information/Administration System - required to manage distribution of allocation of roles.
Secondary: Data Consumer - the system/tool/app that requires the role information.
Stakeholders Person (Employee and/or Student) - the individual for whom the role is being assigned.
Date Flow This follows the standardized data flow between OneRoster Service Provider(s) and Service Consumer(s).
Notes Support of this use-case is through the extension of enumerated vocabulary for the roles attribute in the Role class and use of a new subrole definitions in the metadata extension capability.

A.4 Support for Multiple User Identifiers for a Person (N4)

The use-case description for the support of multiple identifiers for a Person.
Use-case Title Support for Multiple User Identifiers for a Person
Use-case Local ID N4
Brief Description Given an employee or a student, support for multiple userIDs that are in use in the Norwegian school system is required. The full list of userIds is:
  • personNIN – national identity number, D-number or DUF-number
  • personNINencrypted – personNIN encrypted so that the sender can decrypt the content of a personNIN (Encryption method is agreed between sender and recipient outside the transfer)
  • personLIN – locally assigned ID-number
  • personFIN - personal identifier from VIGO
  • studentID – student ID
  • workforceID – employee number
  • username – username
  • sisID – system identifier in SAS/SIS (IPOS/OID)
  • feideID – Feide user identifier. Corresponds to the value of 'eduPersonPrincipalName' in the Feide documentation
  • UPN - Username in systems e.g. Microsoft 365, Azure AD, etc.
Level Summary
Actors Primary: Service Provider - responsible for supplying the new identifiers.
Secondary: Service Consumer - the system/tool/app receiving the identifier information.
Stakeholders Person - the individual for whom the identifier is being assigned.
Date Flow This follows the standardized data flow between OneRoster Service Provider(s) and Service Consumer(s).
Notes Support of this use-case is through the definition of the enumerated vocabulary for the type/'[ attribute in the 'UserId' class.

A.5 Support for Absence (N5)

The use-case description for the tracking of student attendance.
Use-case Title Support for Absence
Use-case Local ID N5
Brief Description All contact teachers in a school must note the absence for a student. The Norwegian school system, uses both “valid” and “invalid” absence on both detailed and aggregated level. The total absence is stated on both a grading card (given at the end of each semester) and the diploma (given at the end of lower and upper secondary). Valid absences are deducted from the total.
Level Summary
Actors Primary: Student Information/Administration System - required to store and manage access to this information.
Secondary: Data Consumer - the system/tool/app that requires the student absence information.
Stakeholders Schools - required to track student absence and to report this information to the appropriate Norwegian audit authorities.
Students - the people who will have their absence record reported in their diploma
Date Flow This is a new service that defines the exchange of the student absence information between a Service Provider (provider of the REST API) and a Service Consumer (user of the REST API).
Notes This requires the definition of a new 1EdTech service (the 1EdTech OneRoster Student Absence Specification 1.0).

A.6 Support for Fictional Data (N6)

The use-case description for the support for fictional data.
Use-case Title Support for Fictional Data
Use-case Local ID N6
Brief Description An administrator needs to assign fictional data to certain students that are in category 6 (strengt fortrolig - strictly confidential) or 7 (fortrolig - confidential). For example, the data (phone number) must be blocked from view for all private citizens. Category 7 means that the phone number of the person exposed to threats is not provided to private individuals but is available to the part of the public sector that has access to information from the National Register of Citizens. Category 6 means that information about the phone number is not delivered to anyone.
Level Summary
Actors Primary: Administrator
Secondary: System used by the Administrator
Stakeholders Student - maintenance of the privacy of their personal information.
Date Flow Machine readable definition, in the OneRoster specification, of the properties that have privacy implications enable the Service Provider to determine if, or how, this data is to be supplied.
Notes Support for this capability is defined in the 1EdTech Privacy Framework [PRIVACY-10]. This requires inclusion of new Sections in the corresponding documentation [ORROS-SM-12], [ORROS-BD-12], [ORROS-NOR-BD-12].

B. Summary of Changes to the OneRoster 1.2 Rostering Service

The summary of changes made to the base OneRoster 1.2 Rostering Service definition is:

  1. The AfterSchoolsManagement interface has been added (this enables the management of information about after-school activities. An after school activity is a type of 'org')
    1. getAcademicSessionForAfterSchool endpoint - to read, get, the specific academic session for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    2. getAcademicSessionSetForAfterSchool endpoint - to read, get, the collection of academic sessions for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    3. getAfterSchool endpoint - to read, get, a specific after-school activity. If the specified after-school cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    4. getAllAfterSchools endpoint - to read, get, a collection of after-school activities i.e. all orgs of type 'after-school'
    5. getClassForAfterSchool endpoint - to read, get, the specific class for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    6. getClassSetForAfterSchool endpoint - to read, get, the collection of classes for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    7. getEnrollmentForAfterSchool endpoint - to read, get, the specific enrollment for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    8. getEnrollmentSetForAfterSchool endpoint - to read, get, the collection of enrollments for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    9. getStudentForAfterSchool endpoint - to read, get, the specific student for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    10. getStudentSetForAfterSchool endpoint - to read, get, the collection of students for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    11. getStudentSetForClassInAfterSchool endpoint - to read, get, the collection of students for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    12. getTeacherForAfterSchool endpoint - to read, get, the specific teacher for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    13. getTeacherSetForAfterSchool endpoint - to read, get, the collection of teachers for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    14. getTeacherSetForClassInAfterSchool endpoint - to read, get, the collection of teachers for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    15. getUserForAfterSchool endpoint - to read, get, the specific user for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    16. getUserSetForAfterSchool endpoint - to read, get, the collection of users for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
  2. The ChildcaresManagement interface has been added (this enables the management of information about child care activities. A child care activity is a type of 'org')
    1. getAcademicSessionForChildcare endpoint - to read, get, the specific academic session for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    2. getAcademicSessionSetForChildcare endpoint - to read, get, the collection of academic sessions for specific childCare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    3. getAllChildcares endpoint - to read, get, a collection of child care activities i.e. all orgs of type 'child care'
    4. getChildcare endpoint - to read, get, a specific child care activity. If the specified child care activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    5. getClassForChildcare endpoint - to read, get, the specific class for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    6. getClassSetForChildcare endpoint - to read, get, the collection of classes for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    7. getEnrollmentForChildcare endpoint - to read, get, the specific enrollment for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    8. getEnrollmentSetForChildcare endpoint - to read, get, the collection of enrollments for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    9. getStudentForChildcare endpoint - to read, get, the specific student for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    10. getStudentSetForChildcare endpoint - to read, get, the collection of students for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    11. getStudentSetForClassInChildcare endpoint - to read, get, the collection of students for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    12. getTeacherForChildcare endpoint - to read, get, the specific teacher for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    13. getTeacherSetForChildcare endpoint - to read, get, the collection of teachers for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    14. getTeacherSetForClassInChildcare endpoint - to read, get, the collection of teachers for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    15. getUserForChildcare endpoint - to read, get, the specific user for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
    16. getUserSetForChildcare endpoint - to read, get, the collection of users for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported
  3. The following classes/data-types have been modified
    1. Changes to the ClassTypeEnum class are
      • The enumeration token ext:nationalTestsGroup has been ADDED
      • The enumeration token ext:specialEducation has been ADDED
      • The enumeration token ext:grepGroup has been ADDED
      • The enumeration token ext:contactTeacherGroup has been ADDED
    2. Changes to the Demographics class are
      • The attribute americanIndianOrAlaskaNative has been PROHIBITED
      • The attribute asian has been PROHIBITED
      • The attribute blackOrAfricanAmerican has been PROHIBITED
      • The attribute nativeHawaiianOrOtherPacificIslander has been PROHIBITED
      • The attribute white has been PROHIBITED
      • The attribute demographicRaceTwoOrMoreRaces has been PROHIBITED
      • The attribute hispanicOrLatinoEthnicity has been PROHIBITED
      • The attribute countryOfBirthCode has been PROHIBITED
      • The attribute stateOfBirthAbbreviation has been PROHIBITED
      • The attribute cityOfBirth has been PROHIBITED
      • The attribute publicSchoolResidenceStatus has been PROHIBITED
    3. Changes to the EnrolRoleEnum class are
      • The attribute proctor has been PROHIBITED
      • The enumeration token ext:aide has been ADDED
      • The enumeration token ext:contactTeacher has been ADDED
    4. Changes to the MetadataClass class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
      • The OPTIONAL attribute 1edtech.subjectCodes with a COMPLEX data-type (SubjectCodes) has been APPENDED
      • The OPTIONAL attribute 1edtech.grepGroups with a COMPLEX data-type (GrepGroups) has been APPENDED
    5. Changes to the MetadataCourse class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
      • The OPTIONAL attribute 1edtech.subjectCodes with a COMPLEX data-type (SubjectCodes) has been APPENDED
    6. Changes to the MetadataEnrollment class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
    7. Changes to the MetadataGeneral class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
    8. Changes to the MetadataOrg class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
      • The OPTIONAL attribute 1edtech.schoolVIGOID of data-type NORMALIZEDSTRING has been APPENDED
      • The OPTIONAL attribute 1edtech.schoolPASCode of data-type NORMALIZEDSTRING has been APPENDED
      • The OPTIONAL attribute 1edtech.schoolType with an ENUMERATED data-type (SchoolTypeEnum) has been APPENDED
    9. Changes to the MetadataUser class are
      • The OPTIONAL attribute 1edtech.language of data-type LANGUAGE has been APPENDED
    10. Changes to the OrgTypeEnum class are
      • The attribute state has been PROHIBITED
      • The attribute local has been PROHIBITED
      • The attribute national has been PROHIBITED
      • The enumeration token ext:afterSchool has been ADDED
      • The enumeration token ext:childCare has been ADDED
      • The enumeration token ext:counsellingService has been ADDED
      • The enumeration token ext:county has been ADDED
      • The enumeration token ext:municipality has been ADDED
      • The enumeration token ext:privateOwner has been ADDED
    11. Changes to the RoleEnum class are
      • The attribute proctor has been PROHIBITED
      • The attribute guardian has been PROHIBITED
      • The attribute parent has been PROHIBITED
      • The attribute relative has been PROHIBITED
      • The enumeration token ext:staff has been ADDED
      • The enumeration token ext:primaryGuardian has been ADDED
      • The enumeration token ext:ownerRepesentative has been ADDED
      • The enumeration token ext:responsibleCaregiver has been ADDED
    12. Changes to the User class are
      • The attribute identifier has been PROHIBITED
      • The attribute password has been PROHIBITED
  4. The following new classes/data-types have been defined
    1. The NEW class GrepGroups has been created. This is a new class defined in this Profile to hold information about the defined Grep Groups. This consists of the following attributes:
      • 1edtech.grepType : GrepTypeEnum [1..1]
      • 1edtech.code : NormalizedString [1..1]
      • 1edtech.title : String [1..1]
      • 1edtech.vocabName : VocabNameEnum [0..1]
      • 1edtech.uri : AnyURI [0..1]
    2. The NEW class GrepTypeEnum has been created. This is the container for the new enumerated vocabulary for the type of Grep Group. This provides an enumeration of:
      • The token fagkoder has been defined
      • The token programomraader has been defined
      • The token utdanningsprogram has been defined
      • The token aarstrinn has been defined
    3. The NEW class SchoolTypeEnum has been created. This is the container for the new enumerated sub-type vocabulary for a School org. This provides an enumeration of:
      • The token primarySchool has been defined
      • The token lowerSecondarySchool has been defined
      • The token upperSecondarySchool has been defined
      • The token adultEducation has been defined
      • The token vocationalSchool has been defined
      • The token homeEducation has been defined
      • The token primaryAndLowerSecondarySchool has been defined
    4. The NEW class SubjectCodes has been created. This is a new class defined in this Profile to hold information about the subjectCodes assigned to a Class or Course. This is the preferred mechanism for providing the subject codes information. This consists of the following attributes:
      • 1edtech.code : NormalizedString [1..1]
      • 1edtech.title : String [1..1]
      • 1edtech.vocabName : VocabNameEnum [0..1]
      • 1edtech.uri : AnyURI [0..1]
    5. The NEW class UserIdTypeEnum has been created. This is the container for the new enumerated vocabulary for the type of UserId. This provides an enumeration of:
      • The token feideID has been defined
      • The token UPN has been defined
      • The token personFIN has been defined
      • The token personLIN has been defined
      • The token personNIN has been defined
      • The token personNINencrypted has been defined
      • The token sisID has been defined
      • The token studentID has been defined
      • The token username has been defined
      • The token workforceID has been defined
    6. The NEW class VocabNameEnum has been created. This is the container for the new enumerated vocabulary for the vocabulary name for Subject Codes. This provides an enumeration of:
      • The token GREP has been defined
      • The token VIGO has been defined
      • The token localCode has been defined

C. OpenAPI Listings

C.1 Extended Rostering Service OpenAPI 3 (JSON) Listing

The OpenAPI 3 (JSON) listing (based upon [OpenAPI3]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_norwegiank12profile_openapi3_v1p0.json).

{
    "openapi" : "3.0.0",
    "info" : {
        "version" : "1.0",
        "title" : "OneRoster 1.2 Norwegian Profile for K-12 Education [ NorwegianK-12 ] OpenAPI (JSON) Definition",
        "description" : "The OneRoster Rostering Service enables the exchange of K-12 oriented roster data. This exchange is typically between the Student Information System and the learning delivery systems. The service provides a number of operations, collected as several endpoints, primarily based upon read, create and delete of the first class objects. In this Norwegian Profile K-12 many new endpoints have been added to support information exchange about Childcare and After School activities. THIS IS A FORMAL PROFILE OF: OneRoster Rostering Service 1.2.",
        "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 demographics 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)."
        },
        {
            "name" : "AfterSchoolsManagement",
            "description" : "NEW in the [ NorwegianK-12 ] Profile: This enables the management of information about after-school activities. An after school activity is a type of 'org'."
        },
        {
            "name" : "ChildcaresManagement",
            "description" : "NEW in the [ NorwegianK-12 ] Profile: This enables the management of information about child care activities. A child care activity is a type of 'org'."
        }
    ],
    "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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/{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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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" : {
            "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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 records 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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "normal",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "normal",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "normal",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "normal",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "restricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools" : {
            "get" : {
                "operationId" : "getAllAfterSchools",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAllAfterSchools() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, a collection of after-school activities i.e. all orgs of type 'after-school'.",
                "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" : "getAllAfterSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllAfterSchools",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllAfterSchools",
                                "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" : "getAllAfterSchools",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/academicsessions" : {
            "get" : {
                "operationId" : "getAcademicSessionSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAcademicSessionSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of academic sessions for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getAcademicSessionSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAcademicSessionSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAcademicSessionSetForAfterSchool",
                                "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" : "getAcademicSessionSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/academicsessions/{academicSessionSourcedId}" : {
            "get" : {
                "operationId" : "getAcademicSessionForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAcademicSessionForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific academic session for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "academicSessionSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified academicSession.",
                        "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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getClassSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of classes for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getClassSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassSetForAfterSchool",
                                "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" : "getClassSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/classes/{classSourcedId}" : {
            "get" : {
                "operationId" : "getClassForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getClassForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific class for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentSetForClassInAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentSetForClassInAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of students for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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" : "getStudentSetForClassInAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentSetForClassInAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentSetForClassInAfterSchool",
                                "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" : "getStudentSetForClassInAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeacherSetForClassInAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherSetForClassInAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of teachers for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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" : "getTeacherSetForClassInAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeacherSetForClassInAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeacherSetForClassInAfterSchool",
                                "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" : "getTeacherSetForClassInAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getEnrollmentSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of enrollments for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getEnrollmentSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getEnrollmentSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getEnrollmentSetForAfterSchool",
                                "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" : "getEnrollmentSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/enrollments/{enrollmentSourcedId}" : {
            "get" : {
                "operationId" : "getEnrollmentForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getEnrollmentForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific enrollment for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "enrollmentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of students for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getStudentSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentSetForAfterSchool",
                                "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" : "getStudentSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/students/{studentSourcedId}" : {
            "get" : {
                "operationId" : "getStudentForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific student for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeacherSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of teachers for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getTeacherSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeacherSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeacherSetForAfterSchool",
                                "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" : "getTeacherSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/teachers/{teacherSourcedId}" : {
            "get" : {
                "operationId" : "getTeacherForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific teacher for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "teacherSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/users" : {
            "get" : {
                "operationId" : "getUserSetForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getUserSetForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the collection of users for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "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" : "getUserSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getUserSetForAfterSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getUserSetForAfterSchool",
                                "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" : "getUserSetForAfterSchool",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{afterschoolSourcedId}/users/{userSourcedId}" : {
            "get" : {
                "operationId" : "getUserForAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getUserForAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, the specific user for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "afterschoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified after-school activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/afterschools/{sourcedId}" : {
            "get" : {
                "operationId" : "getAfterSchool",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAfterSchool() API call.",
                "tags" : [ "AfterSchoolsManagement" ],
                "description" : "To read, get, a specific after-school activity. If the specified after-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 after-school activity.",
                        "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares" : {
            "get" : {
                "operationId" : "getAllChildcares",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAllChildcares() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, a collection of child care activities i.e. all orgs of type 'child care'.",
                "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" : "getAllChildcares",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllChildcares",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllChildcares",
                                "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" : "getAllChildcares",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/academicsessions" : {
            "get" : {
                "operationId" : "getAcademicSessionSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAcademicSessionSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of academic sessions for specific childCare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getAcademicSessionSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAcademicSessionSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAcademicSessionSetForChildcare",
                                "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" : "getAcademicSessionSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/academicsessions/{academicSessionSourcedId}" : {
            "get" : {
                "operationId" : "getAcademicSessionForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getAcademicSessionForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific academic session for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "academicSessionSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified academicSession.",
                        "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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/classes" : {
            "get" : {
                "operationId" : "getClassSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getClassSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of classes for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getClassSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getClassSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getClassSetForChildcare",
                                "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" : "getClassSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/classes/{classSourcedId}" : {
            "get" : {
                "operationId" : "getClassForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getClassForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific class for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/classes/{classSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentSetForClassInChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentSetForClassInChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of students for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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" : "getStudentSetForClassInChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentSetForClassInChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentSetForClassInChildcare",
                                "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" : "getStudentSetForClassInChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/classes/{classSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeacherSetForClassInChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherSetForClassInChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of teachers for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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" : "getTeacherSetForClassInChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeacherSetForClassInChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeacherSetForClassInChildcare",
                                "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" : "getTeacherSetForClassInChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/enrollments" : {
            "get" : {
                "operationId" : "getEnrollmentSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getEnrollmentSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of enrollments for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getEnrollmentSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getEnrollmentSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getEnrollmentSetForChildcare",
                                "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" : "getEnrollmentSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/enrollments/{enrollmentSourcedId}" : {
            "get" : {
                "operationId" : "getEnrollmentForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getEnrollmentForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific enrollment for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "enrollmentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/students" : {
            "get" : {
                "operationId" : "getStudentSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of students for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getStudentSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getStudentSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getStudentSetForChildcare",
                                "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" : "getStudentSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/students/{studentSourcedId}" : {
            "get" : {
                "operationId" : "getStudentForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getStudentForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific student for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/teachers" : {
            "get" : {
                "operationId" : "getTeacherSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of teachers for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getTeacherSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getTeacherSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getTeacherSetForChildcare",
                                "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" : "getTeacherSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/teachers/{teacherSourcedId}" : {
            "get" : {
                "operationId" : "getTeacherForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getTeacherForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific teacher for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "teacherSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/users" : {
            "get" : {
                "operationId" : "getUserSetForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getUserSetForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the collection of users for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "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" : "getUserSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getUserSetForChildcare",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getUserSetForChildcare",
                                "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" : "getUserSetForChildcare",
                                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{childcareSourcedId}/users/{userSourcedId}" : {
            "get" : {
                "operationId" : "getUserForChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getUserForChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, the specific user for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "childcareSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified childcare activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the specified 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"
                        ]
                    }
                ],
                "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/childcares/{sourcedId}" : {
            "get" : {
                "operationId" : "getChildcare",
                "summary" : "NEW in the [ NorwegianK-12 ] Profile: The REST read request message for the getChildcare() API call.",
                "tags" : [ "ChildcaresManagement" ],
                "description" : "To read, get, a specific child care activity. If the specified child care activity 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 child care activity.",
                        "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"
                                }
                            }
                        }
                    },
                    "405" : {
                        "description" : "This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.",
                        "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataGeneralDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","startDate","endDate","type","schoolYear" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                        }
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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","ext:nationalTestsGroup","ext:specialEducation","ext:grepGroup","ext:contactTeacherGroup" ]
                                },
                                {
                                    "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"
                        }
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataClassDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","classType","course","school","terms" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                        }
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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 addressed 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"
                        }
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataCourseDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","org" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                        }
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-privacy" : [ "username","password","extensions" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-normal" : [ "username","extensions" ],
                "x-1edtech-confidentiality-restricted" : [ "password" ],
                "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. NOTE that the sourcedId used to retrieve the demographics data MUST be the same as the sourcedId of the User i.e. the owner of the 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 an interoperability System ID for an object. This is the identifier 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. The sourcedId used to retrieve the demographics data MUST be the same as the sourcedId of the User i.e. the owner of the demographics data.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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\\.\\-_]+"
                                }
                        ]
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataGeneralDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified" ],
                "x-1edtech-privacy" : [ "sourcedId","birthDate","sex","metadata" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "sourcedId" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "birthDate","sex" ],
                "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"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "demographics" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "demographics" ],
                "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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","student","teacher","ext:aide","ext:contactTeacher" ]
                                },
                                {
                                    "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" : [ "false","true" ]
                    },
                    "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"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataEnrollmentDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","user","class","school","role" ],
                "x-1edtech-privacy" : [ "user","role","metadata" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "user","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"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "enrollments" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "enrollments" ],
                "additionalProperties" : false
            },
            "MetadataClassDType" : {
                "description" : "The container for the proprietary extensions in the Class class.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    },
                    "1edtech.subjectCodes" : {
                        "description" : "The existing OneRoster 1.2 subjectCodes property, available as optional on Class, is deprecated in this profile. This means that it remains available for use to achieve backwards compatibility, but that the new metadata 1edtech.subjectCodes property is the preferred mechanism for relaying subject code information. ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/SubjectCodesDType"
                        }
                    },
                    "1edtech.grepGroups" : {
                        "description" : "This is an extension property used to contain the definitions of the associated set of Grep Groups.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/GrepGroupsDType"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "MetadataCourseDType" : {
                "description" : "The container for the proprietary extensions in the Course class.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    },
                    "1edtech.subjectCodes" : {
                        "description" : "The existing OneRoster 1.2 subjectCodes property, available as optional on Course, is deprecated in this profile. This means that it remains available for use to achieve backwards compatibility, but that the new metadata 1edtech.subjectCodes property is the preferred mechanism for relaying subject code information. ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/SubjectCodesDType"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "MetadataEnrollmentDType" : {
                "description" : "The container for the proprietary extensions in the Enrollment class.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "MetadataGeneralDType" : {
                "description" : "The container for the proprietary extensions.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "MetadataOrgDType" : {
                "description" : "The container for the proprietary extensions for the Org class.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    },
                    "1edtech.schoolVIGOID" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an extension that is used to contain the VIGO identifier for the school. This is ONLY used when the associated type of 'org' is a school.",
                        "type" : "string"
                    },
                    "1edtech.schoolPASCode" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an extension that is used to contain the PAS code for the school. This is ONLY used when the associated type of 'org' is a school.",
                        "type" : "string"
                    },
                    "1edtech.schoolType" : {
                        "description" : "This is an extension that is used to contain further definition of the type of school. This is ONLY used when the associated type of 'org' is a school.",
                        "type" : "string",
                        "enum" : [ "primarySchool","lowerSecondarySchool","upperSecondarySchool","adultEducation","vocationalSchool","homeEducation","primaryAndLowerSecondarySchool","kindergarten","lowerSecondaryAndUpperSecondarySchool" ]
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "MetadataUserDType" : {
                "description" : "The container for the proprietary extensions in the User class.",
                "type" : "object",
                "properties" : {
                    "1edtech.language" : {
                        "description" : "Model Primitive Datatype = Language. An extension that is used to contain identification of the default language for the content being supplied.",
                        "type" : "string"
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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","school","ext:afterSchool","ext:childCare","ext:counsellingService","ext:county","ext:municipality","ext:privateOwner" ]
                                },
                                {
                                    "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"
                        }
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataOrgDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","name","type" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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"
                        }
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "ResourceGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Resource' 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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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","principal","siteAdministrator","student","systemAdministrator","teacher","ext:staff","ext:primaryGuardian","ext:ownerRepesentative","ext:responsibleCaregiver" ]
                                },
                                {
                                    "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" ],
                "x-1edtech-privacy" : [ "role","userProfile" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-normal" : [ "role" ],
                "x-1edtech-confidentiality-restricted" : [ "userProfile" ],
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-privacy" : [ "demographics" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "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" ],
                "x-1edtech-privacy" : [ "enrollment" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-privacy" : [ "user" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-restricted" : [ "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 an interoperability System ID for an object. This is the identifier 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.",
                        "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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "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" : [ "false","true" ]
                    },
                    "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"
                    },
                    "preferredGivenName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred given 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"
                    },
                    "preferredFamilyName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The user's preferred family 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 affiliated. 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"
                    },
                    "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"
                        }
                    },
                    "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"
                        }
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataUserDType"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","username","enabledUser","givenName","familyName","roles" ],
                "x-1edtech-privacy" : [ "sourcedId","userMasterIdentifier","username","userIds","givenName","familyName","middleName","preferredGivenName","preferredMiddleName","preferredFamilyName","pronouns","roles","userProfiles","email","sms","phone","agents","metadata" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-normal" : [ "sourcedId","userMasterIdentifier","username","userIds","givenName","familyName","middleName","preferredGivenName","preferredMiddleName","preferredFamilyName","pronouns","email","sms","phone","agents" ],
                "x-1edtech-confidentiality-restricted" : [ "roles","userProfiles" ],
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" : "The type of identifier. This is no predefined vocabulary. In this Profile the data-type has been changed to an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "feideID","UPN","personFIN","personLIN","personNIN","personNINencrypted","sisID","studentID","username","workforceID" ]
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = String. The user identifier.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","identifier" ],
                "x-1edtech-privacy" : [ "type","identifier" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "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" ],
                "x-1edtech-privacy" : [ "profileId","credentials" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-normal" : [ "profileId" ],
                "x-1edtech-confidentiality-restricted" : [ "credentials" ],
                "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"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "users" ],
                "x-1edtech-confidentiality" : "restricted",
                "x-1edtech-confidentiality-restricted" : [ "users" ],
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "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" : [ "failure","processing","success","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" : [ "error","status","warning" ]
                    },
                    "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" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "GrepGroupsDType" : {
                "description" : "This is a new class defined in this Profile to hold information about the defined Grep Groups.",
                "type" : "object",
                "properties" : {
                    "1edtech.grepType" : {
                        "description" : "The type of Grep Group. This is a fixed enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "fagkoder","programomraader","utdanningsprogram","aarstrinn" ]
                    },
                    "1edtech.code" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the Grep Group.",
                        "type" : "string"
                    },
                    "1edtech.title" : {
                        "description" : "Model Primitive Datatype = String. Human readable title for the Grep Group.",
                        "type" : "string"
                    },
                    "1edtech.vocabName" : {
                        "description" : "The name of the source vocabulary. This is an extensible enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "GREP","VIGO","localCode" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "1edtech.uri" : {
                        "description" : "Model Primitive Datatype = AnyURI. URI for Grep Group.",
                        "type" : "string",
                        "format" : "uri"
                    }
                },
                "required" : [ "1edtech.grepType","1edtech.code","1edtech.title" ],
                "additionalProperties" : false
            },
            "SubjectCodesDType" : {
                "description" : "This is a new class defined in this Profile to hold information about the subjectCodes assigned to a Class or Course. This is the preferred mechanism for providing the subject codes information.",
                "type" : "object",
                "properties" : {
                    "1edtech.code" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The subject code from the corresponding identified vocabulary.",
                        "type" : "string"
                    },
                    "1edtech.title" : {
                        "description" : "Model Primitive Datatype = String. Human-readable title of the subject.",
                        "type" : "string"
                    },
                    "1edtech.vocabName" : {
                        "description" : "The name of the source vocabulary. This is an extensible enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "GREP","VIGO","localCode" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                }
                        ]
                    },
                    "1edtech.uri" : {
                        "description" : "Model Primitive Datatype = AnyURI. URI for the definition of the subject code.",
                        "type" : "string",
                        "format" : "uri"
                    }
                },
                "required" : [ "1edtech.code","1edtech.title" ],
                "additionalProperties" : false
            }
        }
    }
}

C.2 Extended Rostering Service OpenAPI 3 (YAML) Listing

The OpenAPI 3 (YAML) listing (based upon [OpenAPI3]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2rostersservice_norwegiank12profile_openapi3_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech) and Markus Gylling (1EdTech)
# Date:           31st January 2023
# Version:        1.0
# Status:         Candidate Final
# Description:    The OneRoster Rostering Service enables the exchange of K-12 oriented roster data. This exchange is typically between the Student Information System and the learning delivery systems. The service provides a number of operations, collected as several endpoints, primarily based upon read, create and delete of the first class objects. In this Norwegian Profile K-12 many new endpoints have been added to support information exchange about Childcare and After School activities.
#                 The changes to the base specification are:
#                 * The "AfterSchoolsManagement" interface has been added (This enables the management of information about after-school activities. An after school activity is a type of 'org'.)
#                    - "getAcademicSessionForAfterSchool" endpoint - To read, get, the specific academic session for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getAcademicSessionSetForAfterSchool" endpoint - To read, get, the collection of academic sessions for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getAfterSchool" endpoint - To read, get, a specific after-school activity. If the specified after-school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getAllAfterSchools" endpoint - To read, get, a collection of after-school activities i.e. all orgs of type 'after-school'.
#                    - "getClassForAfterSchool" endpoint - To read, get, the specific class for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getClassSetForAfterSchool" endpoint - To read, get, the collection of classes for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getEnrollmentForAfterSchool" endpoint - To read, get, the specific enrollment for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getEnrollmentSetForAfterSchool" endpoint - To read, get, the collection of enrollments for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentForAfterSchool" endpoint - To read, get, the specific student for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentSetForAfterSchool" endpoint - To read, get, the collection of students for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentSetForClassInAfterSchool" endpoint - To read, get, the collection of students for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherForAfterSchool" endpoint - To read, get, the specific teacher for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherSetForAfterSchool" endpoint - To read, get, the collection of teachers for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherSetForClassInAfterSchool" endpoint - To read, get, the collection of teachers for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getUserForAfterSchool" endpoint - To read, get, the specific user for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getUserSetForAfterSchool" endpoint - To read, get, the collection of users for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#
#                 * The "ChildcaresManagement" interface has been added (This enables the management of information about child care activities. A child care activity is a type of 'org'.)
#                    - "getAcademicSessionForChildcare" endpoint - To read, get, the specific academic session for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getAcademicSessionSetForChildcare" endpoint - To read, get, the collection of academic sessions for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getAllChildcares" endpoint - To read, get, a collection of child care activities i.e. all orgs of type 'child care'.
#                    - "getChildcare" endpoint - To read, get, a specific child care activity. If the specified child care activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getClassForChildcare" endpoint - To read, get, the specific class for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getClassSetForChildcare" endpoint - To read, get, the collection of classes for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getEnrollmentForChildcare" endpoint - To read, get, the specific enrollment for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getEnrollmentSetForChildcare" endpoint - To read, get, the collection of enrollments for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentForChildcare" endpoint - To read, get, the specific student for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentSetForChildcare" endpoint - To read, get, the collection of students for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getStudentSetForClassInChildcare" endpoint - To read, get, the collection of students for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherForChildcare" endpoint - To read, get, the specific teacher for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherSetForChildcare" endpoint - To read, get, the collection of teachers for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getTeacherSetForClassInChildcare" endpoint - To read, get, the collection of teachers for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getUserForChildcare" endpoint - To read, get, the specific user for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#                    - "getUserSetForChildcare" endpoint - To read, get, the collection of users for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
#
#                 * The following classes/data-types have been modified:-
#                    - Changes to the "ClassTypeEnum" class are:-
#                       + The enumeration token "ext:nationalTestsGroup" has been ADDED
#                       + The enumeration token "ext:specialEducation" has been ADDED
#                       + The enumeration token "ext:grepGroup" has been ADDED
#                       + The enumeration token "ext:contactTeacherGroup" has been ADDED
#                    - Changes to the "Demographics" class are:-
#                       + The attribute "americanIndianOrAlaskaNative" has been PROHIBITED
#                       + The attribute "asian" has been PROHIBITED
#                       + The attribute "blackOrAfricanAmerican" has been PROHIBITED
#                       + The attribute "nativeHawaiianOrOtherPacificIslander" has been PROHIBITED
#                       + The attribute "white" has been PROHIBITED
#                       + The attribute "demographicRaceTwoOrMoreRaces" has been PROHIBITED
#                       + The attribute "hispanicOrLatinoEthnicity" has been PROHIBITED
#                       + The attribute "countryOfBirthCode" has been PROHIBITED
#                       + The attribute "stateOfBirthAbbreviation" has been PROHIBITED
#                       + The attribute "cityOfBirth" has been PROHIBITED
#                       + The attribute "publicSchoolResidenceStatus" has been PROHIBITED
#                    - Changes to the "EnrolRoleEnum" class are:-
#                       + The attribute "proctor" has been PROHIBITED
#                       + The enumeration token "ext:aide" has been ADDED
#                       + The enumeration token "ext:contactTeacher" has been ADDED
#                    - Changes to the "MetadataClass" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                       + The attribute "1edtech.subjectCodes" with a COMPLEX data-type (SubjectCodes) has been APPENDED
#                       + The attribute "1edtech.grepGroups" with a COMPLEX data-type (GrepGroups) has been APPENDED
#                    - Changes to the "MetadataCourse" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                       + The attribute "1edtech.subjectCodes" with a COMPLEX data-type (SubjectCodes) has been APPENDED
#                    - Changes to the "MetadataEnrollment" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                    - Changes to the "MetadataGeneral" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                    - Changes to the "MetadataOrg" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                       + The attribute "1edtech.schoolVIGOID" of data-type NORMALIZEDSTRING has been APPENDED
#                       + The attribute "1edtech.schoolPASCode" of data-type NORMALIZEDSTRING has been APPENDED
#                       + The attribute "1edtech.schoolType" with an ENUMERATED data-type (SchoolTypeEnum) has been APPENDED
#                    - Changes to the "MetadataUser" class are:-
#                       + The attribute "1edtech.language" of data-type LANGUAGE has been APPENDED
#                    - Changes to the "OrgTypeEnum" class are:-
#                       + The attribute "state" has been PROHIBITED
#                       + The attribute "local" has been PROHIBITED
#                       + The attribute "national" has been PROHIBITED
#                       + The enumeration token "ext:afterSchool" has been ADDED
#                       + The enumeration token "ext:childCare" has been ADDED
#                       + The enumeration token "ext:counsellingService" has been ADDED
#                       + The enumeration token "ext:county" has been ADDED
#                       + The enumeration token "ext:municipality" has been ADDED
#                       + The enumeration token "ext:privateOwner" has been ADDED
#                    - Changes to the "RoleEnum" class are:-
#                       + The attribute "proctor" has been PROHIBITED
#                       + The attribute "guardian" has been PROHIBITED
#                       + The attribute "parent" has been PROHIBITED
#                       + The attribute "relative" has been PROHIBITED
#                       + The enumeration token "ext:staff" has been ADDED
#                       + The enumeration token "ext:primaryGuardian" has been ADDED
#                       + The enumeration token "ext:ownerRepesentative" has been ADDED
#                       + The enumeration token "ext:responsibleCaregiver" has been ADDED
#                    - Changes to the "User" class are:-
#                       + The attribute "identifier" has been PROHIBITED
#                       + The attribute "password" has been PROHIBITED
#
#                 * The following new classes/data-types have been defined:-
#                    - The NEW class "GrepGroups" has been created.
#                      This is a new class defined in this Profile to hold information about the defined Grep Groups.
#                      This consists of the following attributes:
#                       + "1edtech.grepType : GrepTypeEnum [1..1]"
#                       + "1edtech.code : NormalizedString [1..1]"
#                       + "1edtech.title : String [1..1]"
#                       + "1edtech.vocabName : VocabNameEnumExt [0..1]"
#                       + "1edtech.uri : AnyURI [0..1]"
#                    - The NEW class "GrepTypeEnum" has been created.
#                      This is the container for the new enumerated vocabulary for the type of Grep Group.
#                      This provides an enumeration of:
#                       + The token "fagkoder" has been defined
#                       + The token "programomraader" has been defined
#                       + The token "utdanningsprogram" has been defined
#                       + The token "aarstrinn" has been defined
#                    - The NEW class "SchoolTypeEnum" has been created.
#                      This is the container for the new enumerated sub-type vocabulary for a School org.
#                      This provides an enumeration of:
#                       + The token "primarySchool" has been defined
#                       + The token "lowerSecondarySchool" has been defined
#                       + The token "upperSecondarySchool" has been defined
#                       + The token "adultEducation" has been defined
#                       + The token "vocationalSchool" has been defined
#                       + The token "homeEducation" has been defined
#                       + The token "primaryAndLowerSecondarySchool" has been defined
#                       + The token "kindergarten" has been defined
#                       + The token "lowerSecondaryAndUpperSecondarySchool" has been defined
#                    - The NEW class "SubjectCodes" has been created.
#                      This is a new class defined in this Profile to hold information about the subjectCodes assigned to a Class or Course. This is the preferred mechanism for providing the subject codes information.
#                      This consists of the following attributes:
#                       + "1edtech.code : NormalizedString [1..1]"
#                       + "1edtech.title : String [1..1]"
#                       + "1edtech.vocabName : VocabNameEnumExt [0..1]"
#                       + "1edtech.uri : AnyURI [0..1]"
#                    - The NEW class "UserIdTypeEnum" has been created.
#                      This is the container for the new enumerated vocabulary for the type of UserId.
#                      This provides an enumeration of:
#                       + The token "feideID" has been defined
#                       + The token "UPN" has been defined
#                       + The token "personFIN" has been defined
#                       + The token "personLIN" has been defined
#                       + The token "personNIN" has been defined
#                       + The token "personNINencrypted" has been defined
#                       + The token "sisID" has been defined
#                       + The token "studentID" has been defined
#                       + The token "username" has been defined
#                       + The token "workforceID" has been defined
#                    - The NEW class "VocabNameEnum" has been created.
#                      This is the container for the new enumerated vocabulary for the vocabulary name for Subject Codes.
#                      This provides an enumeration of:
#                       + The token "GREP" has been defined
#                       + The token "VIGO" has been defined
#                       + The token "localCode" has been defined
#                    - The NEW class "VocabNameEnumExt" has been created (UNSUPPORTED STEREOTYPE).
# 
# History:        This is the first release of the OneRoster Norwegian K-12 Profile. This Candidate Final release is for internal review and adoption by 1EdTech Members.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the 1EdTech OneRoster 1.2 Norwegian Profile for K-12 Education Version 1.0
#                 found at https://www.1edtech.org/ and the original 1EdTech schema binding or code base at
#                 https://www.1edtech.org/.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on 1EdTech procedures with respect to rights in 1EdTech 
#                 specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) 1EdTech Consortium 1999-2024. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.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 1EdTech or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE 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) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st October, 2022
# Autogen Engineer: Colin Smythe (1EdTech)
# Autogen Date:     2024-08-13
# 
# 1EdTech Auto-generation Binding Tool-kit (E-BAT)
# ================================================
# This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-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. 1EdTech 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 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
# https://www.1edtech.org.
# 
# Tool Copyright:  2012-2024  (c) 1EdTech Consortium Inc. All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: OneRoster 1.2 Norwegian Profile for K-12 Education [ NorwegianK-12 ] OpenAPI (YAML) Definition
    description: The OneRoster Rostering Service enables the exchange of K-12 oriented roster data. This exchange is typically between the Student Information System and the learning delivery systems. The service provides a number of operations, collected as several endpoints, primarily based upon read, create and delete of the first class objects. In this Norwegian Profile K-12 many new endpoints have been added to support information exchange about Childcare and After School activities. THIS IS A FORMAL PROFILE OF OneRoster Rostering Service 1.2.
    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).
    - name: AfterSchoolsManagement
      description: |
        NEW in the [ NorwegianK-12 ] Profile: This enables the management of information about after-school activities. An after school activity is a type of 'org'.
    - name: ChildcaresManagement
      description: |
        NEW in the [ NorwegianK-12 ] Profile: This enables the management of information about child care activities. A child care activity is a type of 'org'.

#####################################################################################
#                                   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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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/{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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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:
        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
            x-1edtech-confidentiality: veryrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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 records 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
            x-1edtech-confidentiality: veryrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: normal
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: normal
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: normal
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: normal
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: restricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools:
        get:
            operationId: getAllAfterSchools
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAllAfterSchools() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, a collection of after-school activities i.e. all orgs of type 'after-school'.
            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: getAllAfterSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAfterSchools
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAfterSchools
                            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: getAllAfterSchools
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/academicsessions:
        get:
            operationId: getAcademicSessionSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAcademicSessionSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of academic sessions for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getAcademicSessionSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAcademicSessionSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAcademicSessionSetForAfterSchool
                            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: getAcademicSessionSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/academicsessions/{academicSessionSourcedId}:
        get:
            operationId: getAcademicSessionForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAcademicSessionForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific academic session for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: academicSessionSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified academicSession.
                  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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/classes:
        get:
            operationId: getClassSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getClassSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of classes for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getClassSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassSetForAfterSchool
                            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: getClassSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/classes/{classSourcedId}:
        get:
            operationId: getClassForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getClassForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific class for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/students:
        get:
            operationId: getStudentSetForClassInAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentSetForClassInAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of students for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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: getStudentSetForClassInAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentSetForClassInAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentSetForClassInAfterSchool
                            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: getStudentSetForClassInAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/classes/{classSourcedId}/teachers:
        get:
            operationId: getTeacherSetForClassInAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherSetForClassInAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of teachers for specific after-school activity and class. If the specified after-school activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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: getTeacherSetForClassInAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeacherSetForClassInAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeacherSetForClassInAfterSchool
                            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: getTeacherSetForClassInAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/enrollments:
        get:
            operationId: getEnrollmentSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getEnrollmentSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of enrollments for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getEnrollmentSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentSetForAfterSchool
                            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: getEnrollmentSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/enrollments/{enrollmentSourcedId}:
        get:
            operationId: getEnrollmentForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getEnrollmentForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific enrollment for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: enrollmentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/students:
        get:
            operationId: getStudentSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of students for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getStudentSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentSetForAfterSchool
                            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: getStudentSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/students/{studentSourcedId}:
        get:
            operationId: getStudentForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific student for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/teachers:
        get:
            operationId: getTeacherSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of teachers for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getTeacherSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeacherSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeacherSetForAfterSchool
                            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: getTeacherSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/teachers/{teacherSourcedId}:
        get:
            operationId: getTeacherForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific teacher for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: teacherSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/users:
        get:
            operationId: getUserSetForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getUserSetForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the collection of users for specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  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: getUserSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getUserSetForAfterSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getUserSetForAfterSchool
                            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: getUserSetForAfterSchool
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{afterschoolSourcedId}/users/{userSourcedId}:
        get:
            operationId: getUserForAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getUserForAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, the specific user for the specific after-school activity. If the specified after-school activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: afterschoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified after-school activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /afterschools/{sourcedId}:
        get:
            operationId: getAfterSchool
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAfterSchool() API call.
            tags: 
                - AfterSchoolsManagement
            description: |
                To read, get, a specific after-school activity. If the specified after-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 after-school activity.
                  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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares:
        get:
            operationId: getAllChildcares
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAllChildcares() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, a collection of child care activities i.e. all orgs of type 'child care'.
            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: getAllChildcares
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllChildcares
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllChildcares
                            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: getAllChildcares
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/academicsessions:
        get:
            operationId: getAcademicSessionSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAcademicSessionSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of academic sessions for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getAcademicSessionSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAcademicSessionSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAcademicSessionSetForChildcare
                            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: getAcademicSessionSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/academicsessions/{academicSessionSourcedId}:
        get:
            operationId: getAcademicSessionForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getAcademicSessionForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific academic session for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: academicSessionSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified academicSession.
                  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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/classes:
        get:
            operationId: getClassSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getClassSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of classes for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getClassSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getClassSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getClassSetForChildcare
                            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: getClassSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/classes/{classSourcedId}:
        get:
            operationId: getClassForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getClassForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific class for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/classes/{classSourcedId}/students:
        get:
            operationId: getStudentSetForClassInChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentSetForClassInChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of students for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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: getStudentSetForClassInChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentSetForClassInChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentSetForClassInChildcare
                            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: getStudentSetForClassInChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/classes/{classSourcedId}/teachers:
        get:
            operationId: getTeacherSetForClassInChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherSetForClassInChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of teachers for specific childcare activity and class. If the specified childcare activity and/or class cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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: getTeacherSetForClassInChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeacherSetForClassInChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeacherSetForClassInChildcare
                            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: getTeacherSetForClassInChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/enrollments:
        get:
            operationId: getEnrollmentSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getEnrollmentSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of enrollments for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getEnrollmentSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentSetForChildcare
                            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: getEnrollmentSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/enrollments/{enrollmentSourcedId}:
        get:
            operationId: getEnrollmentForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getEnrollmentForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific enrollment for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: enrollmentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/students:
        get:
            operationId: getStudentSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of students for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getStudentSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getStudentSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getStudentSetForChildcare
                            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: getStudentSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/students/{studentSourcedId}:
        get:
            operationId: getStudentForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getStudentForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific student for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/teachers:
        get:
            operationId: getTeacherSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of teachers for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getTeacherSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getTeacherSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getTeacherSetForChildcare
                            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: getTeacherSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/teachers/{teacherSourcedId}:
        get:
            operationId: getTeacherForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getTeacherForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific teacher for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: teacherSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/users:
        get:
            operationId: getUserSetForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getUserSetForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the collection of users for specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  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: getUserSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getUserSetForChildcare
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getUserSetForChildcare
                            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: getUserSetForChildcare
                            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{childcareSourcedId}/users/{userSourcedId}:
        get:
            operationId: getUserForChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getUserForChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, the specific user for the specific childcare activity. If the specified childcare activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: childcareSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified childcare activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the specified 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
            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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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"

    /childcares/{sourcedId}:
        get:
            operationId: getChildcare
            summary: NEW in the [ NorwegianK-12 ] Profile - The REST read request message for the getChildcare() API call.
            tags: 
                - ChildcaresManagement
            description: |
                To read, get, a specific child care activity. If the specified child care activity 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 child care activity.
                  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"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported.
                    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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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
                metadata: 
                    $ref: "#/components/schemas/MetadataGeneralDType"
            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
            x-1edtech-confidentiality: unrestricted
            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
                - classType
                - course
                - school
                - terms
            x-1edtech-confidentiality: unrestricted
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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
                            - ext:nationalTestsGroup
                            - ext:specialEducation
                            - ext:grepGroup
                            - ext:contactTeacherGroup
                          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"
                metadata: 
                    $ref: "#/components/schemas/MetadataClassDType"
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
                - org
            x-1edtech-confidentiality: unrestricted
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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 addressed 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"
                metadata: 
                    $ref: "#/components/schemas/MetadataCourseDType"
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-privacy:
                - username
                - password
                - extensions
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-normal: 
                - username
                - extensions
            x-1edtech-confidentiality-restricted: 
                - password
            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. NOTE that the sourcedId used to retrieve the demographics data MUST be the same as the sourcedId of the User i.e. the owner of the demographics data.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
            x-1edtech-privacy:
                - sourcedId
                - birthDate
                - sex
                - metadata
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-normal: 
                - sourcedId
                - metadata
            x-1edtech-confidentiality-veryrestricted: 
                - birthDate
                - sex
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. The sourcedId used to retrieve the demographics data MUST be the same as the sourcedId of the User i.e. the owner of the demographics data. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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\\.\\-_]+"
                metadata: 
                    $ref: "#/components/schemas/MetadataGeneralDType"
            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
            x-1edtech-privacy:
                - demographics
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-veryrestricted: 
                - demographics
            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
            x-1edtech-privacy:
                - user
                - role
                - metadata
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - user
                - role
                - metadata
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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
                            - student
                            - teacher
                            - ext:aide
                            - ext:contactTeacher
                          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
                metadata: 
                    $ref: "#/components/schemas/MetadataEnrollmentDType"
            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
            x-1edtech-privacy:
                - enrollments
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - enrollments
            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
        MetadataClassDType:
            description: |
                The container for the proprietary extensions in the Class class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
                1edtech.subjectCodes: 
                    description: The existing OneRoster 1.2 subjectCodes property, available as optional on Class, is deprecated in this profile. This means that it remains available for use to achieve backwards compatibility, but that the new metadata 1edtech.subjectCodes property is the preferred mechanism for relaying subject code information. 
                    $ref: "#/components/schemas/SubjectCodesDType"
                1edtech.grepGroups: 
                    description: This is an extension property used to contain the definitions of the associated set of Grep Groups.
                    $ref: "#/components/schemas/GrepGroupsDType"
            additionalProperties: true
        MetadataCourseDType:
            description: |
                The container for the proprietary extensions in the Course class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
                1edtech.subjectCodes: 
                    description: The existing OneRoster 1.2 subjectCodes property, available as optional on Course, is deprecated in this profile. This means that it remains available for use to achieve backwards compatibility, but that the new metadata 1edtech.subjectCodes property is the preferred mechanism for relaying subject code information. 
                    $ref: "#/components/schemas/SubjectCodesDType"
            additionalProperties: true
        MetadataEnrollmentDType:
            description: |
                The container for the proprietary extensions in the Enrollment class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
            additionalProperties: true
        MetadataGeneralDType:
            description: |
                The container for the proprietary extensions.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
            additionalProperties: true
        MetadataOrgDType:
            description: |
                The container for the proprietary extensions for the Org class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
                1edtech.schoolVIGOID: 
                    description: This is an extension that is used to contain the VIGO identifier for the school. This is ONLY used when the associated type of 'org' is a school. Model Primitive Datatype = NormalizedString.
                    type: string
                1edtech.schoolPASCode: 
                    description: This is an extension that is used to contain the PAS code for the school. This is ONLY used when the associated type of 'org' is a school. Model Primitive Datatype = NormalizedString.
                    type: string
                1edtech.schoolType: 
                    description: This is an extension that is used to contain further definition of the type of school. This is ONLY used when the associated type of 'org' is a school.
                    type: string
                    enum: 
                       - primarySchool
                       - lowerSecondarySchool
                       - upperSecondarySchool
                       - adultEducation
                       - vocationalSchool
                       - homeEducation
                       - primaryAndLowerSecondarySchool
                       - kindergarten
                       - lowerSecondaryAndUpperSecondarySchool
            additionalProperties: true
        MetadataUserDType:
            description: |
                The container for the proprietary extensions in the User class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                1edtech.language: 
                    description: An extension that is used to contain identification of the default language for the content being supplied. Model Primitive Datatype = Language.
                    type: string
            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
            x-1edtech-confidentiality: unrestricted
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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
                            - school
                            - ext:afterSchool
                            - ext:childCare
                            - ext:counsellingService
                            - ext:county
                            - ext:municipality
                            - ext:privateOwner
                          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"
                metadata: 
                    $ref: "#/components/schemas/MetadataOrgDType"
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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 'Resource' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-privacy:
                - role
                - userProfile
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-normal: 
                - role
            x-1edtech-confidentiality-restricted: 
                - userProfile
            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
                            - principal
                            - siteAdministrator
                            - student
                            - systemAdministrator
                            - teacher
                            - ext:staff
                            - ext:primaryGuardian
                            - ext:ownerRepesentative
                            - ext:responsibleCaregiver
                          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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-privacy:
                - demographics
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-veryrestricted: 
                - 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
            x-1edtech-privacy:
                - enrollment
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - 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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-privacy:
                - user
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-restricted: 
                - 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
                - username
                - enabledUser
                - givenName
                - familyName
                - roles
            x-1edtech-privacy:
                - sourcedId
                - userMasterIdentifier
                - username
                - userIds
                - givenName
                - familyName
                - middleName
                - preferredGivenName
                - preferredMiddleName
                - preferredFamilyName
                - pronouns
                - roles
                - userProfiles
                - email
                - sms
                - phone
                - agents
                - metadata
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-normal: 
                - sourcedId
                - userMasterIdentifier
                - username
                - userIds
                - givenName
                - familyName
                - middleName
                - preferredGivenName
                - preferredMiddleName
                - preferredFamilyName
                - pronouns
                - email
                - sms
                - phone
                - agents
                - metadata
            x-1edtech-confidentiality-restricted: 
                - roles
                - userProfiles
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is an interoperability System ID for an object. This is the identifier 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. 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 the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                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
                preferredGivenName: 
                    description: The user's preferred given 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
                preferredFamilyName: 
                    description: The user's preferred family 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 affiliated. 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"
                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
                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"
                metadata: 
                    $ref: "#/components/schemas/MetadataUserDType"
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-privacy:
                - type
                - identifier
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - type
                - identifier
            properties: 
                type: 
                    description: |
                        The type of identifier. This is no predefined vocabulary. In this Profile the data-type has been changed to an enumerated vocabulary.
                    type: string
                    enum: 
                       - feideID
                       - UPN
                       - personFIN
                       - personLIN
                       - personNIN
                       - personNINencrypted
                       - sisID
                       - studentID
                       - username
                       - workforceID
                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
            x-1edtech-privacy:
                - profileId
                - credentials
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-normal: 
                - profileId
            x-1edtech-confidentiality-restricted: 
                - credentials
            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
            x-1edtech-privacy:
                - users
            x-1edtech-confidentiality: restricted
            x-1edtech-confidentiality-restricted: 
                - users
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
            x-1edtech-confidentiality: unrestricted
            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
        GrepGroupsDType:
            description: |
                This is a new class defined in this Profile to hold information about the defined Grep Groups.
            type: object
            required: 
                - 1edtech.grepType
                - 1edtech.code
                - 1edtech.title
            properties: 
                1edtech.grepType: 
                    description: The type of Grep Group. This is a fixed enumerated vocabulary.
                    type: string
                    enum: 
                       - fagkoder
                       - programomraader
                       - utdanningsprogram
                       - aarstrinn
                1edtech.code: 
                    description: The unique identifier for the Grep Group. Model Primitive Datatype = NormalizedString.
                    type: string
                1edtech.title: 
                    description: Human readable title for the Grep Group. Model Primitive Datatype = String.
                    type: string
                1edtech.vocabName: 
                    description: |
                        The name of the source vocabulary. This is an extensible enumerated vocabulary.
                    anyOf: 
                        - enum: 
                            - GREP
                            - VIGO
                            - localCode
                          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\\.\\-_]+"
                1edtech.uri: 
                    description: URI for Grep Group. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
            additionalProperties: false
        SubjectCodesDType:
            description: |
                This is a new class defined in this Profile to hold information about the subjectCodes assigned to a Class or Course. This is the preferred mechanism for providing the subject codes information.
            type: object
            required: 
                - 1edtech.code
                - 1edtech.title
            properties: 
                1edtech.code: 
                    description: The subject code from the corresponding identified vocabulary. Model Primitive Datatype = NormalizedString.
                    type: string
                1edtech.title: 
                    description: Human-readable title of the subject. Model Primitive Datatype = String.
                    type: string
                1edtech.vocabName: 
                    description: |
                        The name of the source vocabulary. This is an extensible enumerated vocabulary.
                    anyOf: 
                        - enum: 
                            - GREP
                            - VIGO
                            - localCode
                          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\\.\\-_]+"
                1edtech.uri: 
                    description: URI for the definition of the subject code. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
            additionalProperties: false

D. Revision History

This section is non-normative.

D.1 Version History

Version No. Release Date Comments
1EdTech Final Release 1.0 1st January, 2025 The first Final Release made available for broad adoption.

E. References

E.1 Normative references

[BCP47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed.. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc5646
[ISO6523]
ISO/IEC 6523:2023 - Information Trechnology - Structure for the identification of organizations and organizations parts. ISO/IEC. 2023. URL: https://www.iso.org/standard/82246.html
[OpenAPI3]
OpenAPI Specification 3.0. Open API Initiative (Linux Foundation). July 2017. URL: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md
[OR-CSV-121]
OneRoster 1.2.1 CSV Binding Final Release 1.0. 1EdTech Consortium, Inc. August, 2023. URL: https://www.imsglobal.org/spec/oneroster/v1p2/bind/csv/
[OR-IG-12]
OneRoster 1.2 Implementation Guide Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/lis/imsonerosterv1p2/imsOneRosterv1p2-bestpracticesv1p0.html
[ORABS-BD-10]
OneRoster 1.0 Student Absence Service REST/JSON Binding Candidate Final 1.0. 1EdTech Consortium, Inc. June, 2023. URL: https://www.imsglobal.org/spec/oneroster/v1p0/absence/bind
[ORABS-SM-10]
OneRoster 1.0 Student Absence Service Candidate Final 1.0. 1EdTech Consortium, Inc. June, 2023. URL: https://www.imsglobal.org/spec/oneroster/v1p0/absence/info
[ORGBK-ARP-10]
Assessment Results Profile for Gradebook Services Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/lis/imsonerosterv1p2/imsOneRosterv1p2-assessmentresults-profilev1p0.html
[ORGBK-BD-12]
OneRoster 1.2 Gradebook Services REST/JSON Binding Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/gradebook-restbinding/OneRosterv1p2GradebookService_RESTBindv1p0.html
[ORGBK-SM-12]
OneRoster 1.2 Gradebook Services Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/gradebook-informationmodel/OneRosterv1p2GradebookService_InfoModelv1p0.html
[ORRES-BD-12]
OneRoster 1.2 Resource Services REST/JSON Binding Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/resources-restbinding/OneRosterv1p2ResourcesService_RESTBindv1p0.html
[ORRES-SM-12]
OneRoster 1.2 Resource Services Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/resources-informationmodel/OneRosterv1p2ResourcesService_InfoModelv1p0.html
[ORROS-BD-12]
OneRoster 1.2 Rostering Services REST/JSON Binding Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/rostering-restbinding/OneRosterv1p2RosteringService_RESTBindv1p0.html
[ORROS-NOR-BD-12]
Norwegian K-12 Profile OneRoster 1.2 Rostering Services REST/JSON Binding Candidate Final 1.0. 1EdTech Consortium, Inc. February, 2024. URL: https://www.imsglobal.org/spec/oneroster/v1p2/norwegiank12/bind
[ORROS-SM-12]
OneRoster 1.2 Rostering Services Final Release 1.0. 1EdTech Consortium, Inc. September, 2022. URL: https://www.imsglobal.org/sites/default/files/spec/oneroster/v1p2/rostering-informationmodel/OneRosterv1p2RosteringService_InfoModelv1p0.html
[PRIVACY-10]
Privacy Framework 1.0 Candidate Final 1.0. 1EdTech Consortium, Inc. June, 2024. URL: https://www.imsglobal.org/spec/privacy/v1p0/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119

E.2 Informative references

[OR-EU-12]
OneRoster 1.2 European Profile Candidate Final 1.0. 1EdTech Consortium, Inc. July, 2020. URL: https://www.imsglobal.org/spec/oneroster/v1p2/european
[OR-OVIEW-12]
OneRoster 1.2 Standard 2.0. Colin, Smythe; Matthew, Richards; Joshua, McGhee. IMS Global Learning Consortium, Inc. September, 2022. IMS Final Release. URL: https://www.imsglobal.org/spec/oneroster/v1p2/

F. List of Contributors

The following individuals contributed to the development of this document:

Name Organization
Sindre Gusfre BergeThe Norwegian Directorate for Education and Training
Cristoffer BråthenConexus
Torleif GravelsæterNorwegian Agency for Shared Services in Education and Research
Markus Gylling1EdTech Consortium
Knut Ivar SkoglandVigilo
Kjartan MüllerThe Norwegian Directorate for Education and Training
Colin Smythe1EdTech Consortium
Christian StangeNDLA
Frode UtvikVigilo
Knut Ivar SkoglandVigilo AS
Jo Are I. RivelsrudVigilo AS
Heine HalvorsenConexus AS
Jon Harald BergeConexus AS
Kjartan Rekdal MüllerUdir
Aurimas ValauskasVisma
Sindre BergeUdir
Julija TkacaUdir
Eva MjovikUdir
Joakim NylénUtdanningsetaten Oslo
Christofer NygårdUtdanningsetaten Oslo
Arild B. AndaUtdanningsetaten Oslo
Mikael NilssonIST
Trond J. UndrumStrigoo AS
Hans Martin GraedlerVisma Enterprise AS
Silje Hæhre LienIST
Dovydas VaitkusVisma Enterprise AS
Adomas SutkeviciusVisma
Jon HaraldConexus
Christoffer BråthenConexus
Leslie McCafferty1EdTech
Amund ElstadIST
Joakim Wold NylénOsloskolen

1EdTech™ Consortium, Inc. ("1EdTech") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

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

1EdTech would appreciate receiving your comments and suggestions.

Please contact 1EdTech through our website at www.1edtech.org.

Please refer to Document Name: 1EdTech OneRoster Specification: Norwegian Profile 1.0

Date: 1st, January 2025

Specification Images: