OneRoster Rostering Service REST/JSON Binding
This is the OneRoster 1.2 Rostering Service specification. This service provides the management of Academic Sessions, Users, Classes, Courses, Orgs, Students, Teachers, Schools, Grading Periods, Demographics, Terms and Enrollments. This service is made available as a REST/JSON based binding to support rostering data exchange.
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. The primary use-case is the exchange of data between a Student Information System (SIS) and Learning Management System (LMS). In OR 1.2, the service has been split into three core services:
- OneRoster Rostering Service 1EdTech OneRoster 1.2 Rostering Service Model Final Release 1.0 - for which the REST/JSON binding is described in this document;
- OneRoster Gradebook Service 1EdTech OneRoster 1.2 Gradebook Services Final Release 1.0 - to enable the exchange of information about results which may be aligned as lineItems and categories which are collections of lineItems;
- OneRoster Resources Service 1EdTech OneRoster 1.2 Resources Services Final Release 1.0 - to enable the exchange of information about the resources allocated to classes, courses and users.
This OR 1.2 Rostering Service provides the ability to manage the exchange of information about people, classes, courses, organizations and enrollments. The service description includes the definition of the data formats that are exchanged using a set of service operations. In this document the binding implementation as a REST/JSON service is described.
Introduction
This Section is NOT NORMATIVE.
Scope and Context
This document is the OneRoster 1.2 Rostering Service REST/JSON Binding and as such it is used as the basis for the implementing the OR Rostering Service Model. The key related documents are:
- OneRoster 1.2 Rostering Service 1EdTech OneRoster 1.2 Rostering Service Model Final Release 1.0 - the description of the OR Rostering Service Information Model;
- OneRoster 1.2 Best Practices and Implementation Guide 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0 - the recommended best practices for implementing the set of OneRoster services;
- OneRoster 1.2 Conformance and Certification 1EdTech OneRoster 1.2 Conformance and Certification Final Release 1.0 - the conformance guidelines for achieving OneRoster Rostering certification.
The OR Rostering service model and this REST/JSON binding is described using the Unified Modeling Language (UML) based upon the 1EdTech Global Model Driven Specification approach and the associated modelling toolkit 1EdTech Binding Auto-generation Toolkit (I-BAT). This means that this specification is based upon the concepts of:
- Interoperability - the OneRoster Rostering service focuses on the exchange of learning standards and competencies definitions. There are no definitions in the specification on how the data is managed within the end-systems;
- Service-oriented - the OneRoster Rostering service specification defines the exchange of information in terms of the services being supplied by the collaboration of the systems.
Key artefacts produced as part of the REST/JSON binding description are the associated OpenAPI files based upon the OpenAPI Specifications version 2 OpenAPI Specification (version 2) and version 3 OpenAPI Specification (version 3).
Conventions
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, NOT RECOMMENDED, NOT REQUIRED, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document $are to be interpreted as described in Key words for use in RFCs to Indicate Requirement Levels.
An implementation of this specification that fails to implement a MUST/REQUIRED/SHALL requirement or fails to abide by a MUST NOT/SHALL NOT prohibition is considered nonconformant. SHOULD/SHOULD NOT/RECOMMENDED statements constitute a best practice. Ignoring a best practice does not violate conformance but a decision to disregard such guidance should be carefully considered. MAY/OPTIONAL statements indicate that implementers are entirely free to choose whether or not to implement the option.
The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.
Changes in Rostering Service 1.2
The set of changes made between OR 1.1 and OR 1.2 with respect to rostering are:
- The Rostering parts of the OneRoster specification have been separated out into their own Service Model and REST/JSON Binding documents;
- The endpoints have been annotated as '/ims/oneroster/rostering/v1p2' to replace the '/ims/oneroster/v1p1';
- The attribute 'preferredName' has been added to the 'User' class;
- The enumeration vocabulary for the attribute 'sex' in the 'Demographics' class has been extended with the tokens 'other' and 'unspecified';
- The 'userMasterId' attribute has been added to the 'User' class enable the assignment of a definitive globally unique identifier (not the interoperability 'sourcedId' for the user);
- The 'roles' attribute has been added to the 'User' class and the 'Roles' class has been added to enable the assignment of any combination of role/org/account mappings for a user;
- The 'resources' attribute has been added to the 'User' class to allow identification of the set of resources available to the user;
- The 'role' and 'orgs' attributes have been removed from the 'User' class;
- The 'primaryOrg' attribute has been added to the 'User' class;
- The 'masterProfiles' attribute has been added to the 'User' class and the 'UserProfiles' and 'Credential' classes have been added to enable the assignment of profiles to a user. A profile enables the management of credentials for access to a system;
- The 'ClassTypeEnum', 'GenderEnum', 'OrgTypeEnum', 'RoleEnum' and 'SessionTypeEnum' vocabularies have been made extensible to enable easier profiling and internationalisation;
- All references to the CEDS/SCEDS vocabularies have been removed so that such vocabularies can be replaced by those that are more relevant to a geographic region;
- Use of OAuth 1.0a message signing has been removed. The use of OAuth 2.0 Bearer Tokens (Client Credentials Grant) is required instead. The security architecture has been aligned to the IMS Security Framework 1EdTech Security Framework 1.1 Final Release;
- A Service Provider is REQUIRED to make a localized OpenAPI file available to enable Service Discovery 1EdTech Security Framework 1.1 Final Release.
Nomenclature
- API
- Application Programming Interface
- CEDS
- Common Education Data Standards
- GUID
- Globally Unique Identifier
- HTTP
- Hypertext Transfer Protocol
- I-BAT
- IMS Binding Autogeneration Toolkit
- IETF
- Internet Engineering Task Force
- JSON
- Java Script Object Notation
- LIS
- Learning Information Services
- NCES
- National Center for Education Statistics
- PII
- Personally Identifiable Information
- REST
- Representational State Transfer
- RFC
- Request for Comments
- TLS
- Transport Layer Security
- UML
- Unified Modeling Language
- URI
- Uniform Resource Identifier
- URL
- Uniform Resource Locator
- UTC
- Coordinated Universal Time
- YAML
- Yet Another Markup Language
REST Endpoints
An explanation of the relationship between the logical service operations (as defined in the OneRoster Rostering Service Model) and how these are realised as the corresponding set of REST endpoints (including the set of query parameters that are permitted);
Mapping of the Service Operations to the REST Endpoints
| Service Call | REST Endpoint | HTTP Verb |
|---|---|---|
| getAcademicSession | /academicSessions/{sourcedId} | GET |
| getAllAcademicSessions | /academicSessions | GET |
| getAllClasses | /classes | GET |
| getAllCourses | /courses | GET |
| getAllDemographics | /demographics | GET |
| getAllEnrollments | /enrollments | GET |
| getAllGradingPeriods | /gradingPeriods | GET |
| getAllOrgs | /orgs | GET |
| getAllSchools | /schools | GET |
| getAllStudents | /students | GET |
| getAllTeachers | /teachers | GET |
| getAllTerms | /terms | GET |
| getAllUsers | /users | GET |
| getClass | /classes/{sourcedId} | GET |
| getClassesForCourse | /courses/{courseSourcedId}/classes | GET |
| getClassesForSchool | /schools/{schoolSourcedId}/classes | GET |
| getClassesForStudent | /students/{studentSourcedId}/classes | GET |
| getClassesForTeacher | /teachers/{teacherSourcedId}/classes | GET |
| getClassesForTerm | /terms/{termSourcedId}/classes | GET |
| getClassesForUser | /users/{userSourcedId}/classes | GET |
| getCourse | /courses/{sourcedId} | GET |
| getCoursesForSchool | /schools/{schoolSourcedId}/courses | GET |
| getDemographics | /demographics/{sourcedId} | GET |
| getEnrollment | /enrollments/{sourcedId} | GET |
| getEnrollmentsForClassInSchool | /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments | GET |
| getEnrollmentsForSchool | /schools/{schoolSourcedId}/enrollments | GET |
| getGradingPeriod | /gradingPeriods/{sourcedId} | GET |
| getGradingPeriodsForTerm | /terms/{termSourcedId}/gradingPeriods | GET |
| getOrg | /orgs/{sourcedId} | GET |
| getSchool | /schools/{sourcedId} | GET |
| getStudent | /students/{sourcedId} | GET |
| getStudentsForClass | /classes/{classSourcedId}/students | GET |
| getStudentsForClassInSchool | /schools/{schoolSourcedId}/classes/{classSourcedId}/students | GET |
| getStudentsForSchool | /schools/{schoolSourcedId}/students | GET |
| getTeacher | /teachers/{sourcedId} | GET |
| getTeachersForClass | /classes/{classSourcedId}/teachers | GET |
| getTeachersForClassInSchool | /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers | GET |
| getTeachersForSchool | /schools/{schoolSourcedId}/teachers | GET |
| getTerm | /terms/{sourcedId} | GET |
| getTermsForSchool | /schools/{schoolSourcedId}/terms | GET |
| getUser | /users/{sourcedId} | GET |
API Root URL and Versioning
All of the paths MUST also contain, as the base of the path, excluding the host name, the string: "/ims/oneroster/rostering/v1p2".
getAcademicSession Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/academicSessions/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this academic session. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleAcademicSession | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllAcademicSessions Operation
To read, get, a collection of academic sessions i.e. all academic sessions.
Request
GET /ims/oneroster/rostering/v1p2/academicSessions?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
AcademicSessionSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllClasses Operation
To read, get, a collection of classes i.e. all classes.
Request
GET /ims/oneroster/rostering/v1p2/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllCourses Operation
To read, get, a collection of courses i.e. all courses.
Request
GET /ims/oneroster/rostering/v1p2/courses?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
CourseSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllDemographics Operation
To read, get, a collection of demographics i.e. all demographics.
Request
GET /ims/oneroster/rostering/v1p2/demographics?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
DemographicsSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllEnrollments Operation
To read, get, a collection of enrollments i.e. all enrollments.
Request
GET /ims/oneroster/rostering/v1p2/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
EnrollmentSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllGradingPeriods Operation
To read, get, a collection of grading periods i.e. all academic sessions.
Request
GET /ims/oneroster/rostering/v1p2/gradingPeriods?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
AcademicSessionSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllOrgs Operation
To read, get, a collection of orgs i.e. all orgs.
Request
GET /ims/oneroster/rostering/v1p2/orgs?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
OrgSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllSchools Operation
To read, get, a collection of schools i.e. all schools.
Request
GET /ims/oneroster/rostering/v1p2/schools?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
OrgSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllStudents Operation
To read, get, a collection of students i.e. all students.
Request
GET /ims/oneroster/rostering/v1p2/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllTeachers Operation
To read, get, a collection of teachers i.e. all teachers.
Request
GET /ims/oneroster/rostering/v1p2/teachers?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllTerms Operation
To read, get, a collection of terms i.e. all terms.
Request
GET /ims/oneroster/rostering/v1p2/terms?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
AcademicSessionSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getAllUsers Operation
To read, get, a collection of users i.e. all users (including students and teachers).
Request
GET /ims/oneroster/rostering/v1p2/users?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClass Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/classes/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this class. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleClass | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForCourse Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/courses/{courseSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
courseSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific course. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForStudent Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/students/{studentSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
studentSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific student. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForTeacher Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/teachers/{teacherSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
teacherSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific teacher. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForTerm Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/terms/{termSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
termSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific term. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getClassesForUser Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/users/{userSourcedId}/classes?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
userSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific user. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
ClassSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getCourse Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/courses/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this course. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleCourse | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getCoursesForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/courses?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
CourseSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getDemographics Operation
To read, get, a specific user demographics. If the specified user and/or demographics record cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Request
GET /ims/oneroster/rostering/v1p2/demographics/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this user demographics. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleDemographics | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getEnrollment Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/enrollments/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this enrollment. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleEnrollment | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getEnrollmentsForClassInSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the school. | Required |
classSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the class. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
EnrollmentSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getEnrollmentsForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
EnrollmentSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getGradingPeriod Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/gradingPeriods/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this grading period. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleAcademicSession | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getGradingPeriodsForTerm Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/terms/{termSourcedId}/gradingPeriods?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
termSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific term. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
AcademicSessionSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getOrg Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/orgs/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this org. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleOrg | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this school. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleOrg | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getStudent Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/students/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this student. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleUser | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getStudentsForClass Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/classes/{classSourcedId}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
classSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the class. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getStudentsForClassInSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/classes/{classSourcedId}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
classSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the class. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getStudentsForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTeacher Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/teachers/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this teacher. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleUser | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTeachersForClass Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/classes/{classSourcedId}/teachers?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
classSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the class. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTeachersForClassInSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
classSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the class. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTeachersForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/teachers?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
UserSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTerm Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/terms/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this term. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleAcademicSession | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getTermsForSchool Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/schools/{schoolSourcedId}/terms?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}&fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
schoolSourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for the specific school. | Required |
limit (parameter.type?lower_case) |
PositiveInteger | To define the download segmentation value i.e. the maximum number of records to be contained in the response. | Optional |
offset (parameter.type?lower_case) |
NonNegativeInteger | The number of the first record to be supplied in the segmented response message. | Optional |
sort (parameter.type?lower_case) |
String | Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard. | Optional |
orderBy (parameter.type?lower_case) |
OrderByEnum | The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard. | Optional |
filter (parameter.type?lower_case) |
String | The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard. | Optional |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
AcademicSessionSet | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
getUser Operation
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.
Request
GET /ims/oneroster/rostering/v1p2/users/{sourcedId}?fields={fields}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
sourcedId (parameter.type?lower_case) |
SourcedId | The unique identifier, GUID, for this user. | Required |
fields (parameter.type?lower_case) |
String | To identify the range of fields that should be supplied in the response message. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality |
|---|---|---|---|---|---|
| DEFAULT | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 200 | application/json |
SingleUser | No Description | Required | N/A |
| 400 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 401 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 403 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 404 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 405 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 429 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 422 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
| 500 | application/json |
imsx_StatusInfo | No Description | Required | N/A |
Service Discovery
A Service Provider MUST provide a localized version of the OpenAPI file (version 3 JSON file format) to enable service discovery [Security, 21].
This file MUST be located at: "...hostname.../ims/oneroster/rostering/v1p2/discovery/".
The OpenAPI file MUST have the name: "onerosterv1p2rostersservice_openapi3_v1p0.json".
Therefore the full URL for this service discovery file is: ...hostname.../ims/oneroster/rostering/v1p2/discovery/onerosterv1p2rostersservice_openapi3_v1p0.json
Using the Endpoint Parameters
This Section is NOT NORMATIVE.
Pagination
For requests of collections i.e. the response for the 'getAllUsers()' call, there is a danger of data overload. To avoid this, implementations should adopt a pagination mechanism. Pagination is controlled via two parameters that are appended to the request:
- 'limit' - the number of results to return (the default value is 100);
- 'offset' - the index of the first record to return (zero index and so the default value is 0).
An example of a request to return the first 10 resources in a collection of students:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10
An example of a request to return the second 10 users in a collection of users:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=10
It is RECOMMENDED that implementations pass the total resource count in collection back to the requester. This MUST be provided in the custom HTTP header: X-Total-Count.
It is RECOMMENDED that implementers pass back next, previous, first and last links in the HTTP Link Header.
Consider the requests for the example where 503 resources exist in the collection. The pagination is in units of 10.
Link:
<https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=20>; rel="next",
<https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=3&offset=500>; rel="last",
<https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=0>; rel="first",
<https://imsglobal.org/ims/oneroster/rostering/v1p2/users?limit=10&offset=0>; rel="prev"
Sorting
It should be possible for collections, i.e. the response for the 'getAllUsers()' call etc. to be returned in a sorted order. It should be possible to sort the collection based on any single data element in the core description of the resource. Sort requests MUST make use of the reserved word "sort" (?sort= data_field), and optionally the reserved word orderBy for which:
- 'data_field' MUST be used in the request to ask for the collection to be sorted on data field. The form of ordering is implementation dependent if the 'orderBy' attribute is not used;
- 'orderBy' MAY be used in the request to ask for the collection to be ordered ascending (asc) or descending (desc).
An example of a request to ask for a list of users sorted into ascending lastName order:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?sort=lastName&orderBy=asc
Sorting should conform to the use of the Unicode Collation Algorithm UNICODE Collation Algorithm Version 9.0 when using the relevant comparisons.
If the consumer requests that the data is to be sorted by a non-existent field, data MAY be returned in the service provider's default sort order or an error response MAY be returned.
When sorting/ordering is requested on a property that is an array, the first value in the array is used as the basis of the sorting/ordering.
To sort/order on the properties of nested objects, (for example, with metadata properties), a dot-notation approach MUST be used. The format for this is:
?sort=<Nested_Object>.<Property>
Filtering
For the calls that request collections e.g. 'getAllUsers()' call, it should be possible to filter collections for elements matching a certain criteria. It should be possible to filter collections based on any data element in the core description of the resource.Filter requests MUST take the form:
?filter=<data_field><predicate><value>
or
?filter=<data_field><predicate><value><logical><data_field><predicate><value>
The data fields that can be used are those present in the class definition being filtered. So for example in 'users', it MUST be possible to filter on: 'firstName', 'lastName', 'dateLastModified', etc.
Predicates MUST be chosen from those listed below:
- Equals is represented by '='
- Not Equal is represented by '!='
- Greater Than is represented by '>'
- Greater Than or Equal is represented by '>='
- Lesser Than is represented by '<'
- Lesser Than or Equal is represented by '<='
- Contains is represented by '~'
Values MUST be enclosed within single quotes and they MUST be handled as case insensitive. When the response is returned it is the receiving system that should consider whether or not case-sensitivity is important.
The
To query on the properties of nested objects, (for example, with metadata properties), a dot-notation approach MUST be used. The format for this is:
?filter=<Nested_Object>.<Property>
Note then when querying on metadata, the property is loosely typed. An example or a request to find users with a 'lastName' of 'Smythe' is:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName='Smythe'
URL encoded as:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName%3D%27Smythe%27
Filter queries MUST be URL encoded.
An example of a complex query for all users with a lastName='Smythe' AND dateLastModified>'2016-12-12T00:00:00Z' is:
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?filter=lastName%3D%27Smythe%27%20AND%20dateLastModified%3E%272016%3D12%3D12T00%3A00%3A00Z%27
When filtering on objects that are arrays the application of the filter depends on the nature of the comparison. So in the case of filtering on the 'preferredName' field when the value of the field is 'name1,name2,name3' the following filters would return:
- ?filter=preferredName='name1,name2' - record not returned;
- ?filter=preferredName='name1,name2,name3' - record returned;
- ?filter=preferredName~'name1" - record returned;
- ?filter=preferredName~'name1,name2' - record returned;
- ?filter=preferredName~'name1,name2,name3' - record returned.
This means filtering using the '=' has 'AND' semantics and the '~' has 'OR' semantics. Filtering rules should conform to the use of the Unicode Collation Algorithm UNICODE Collation Algorithm Version 9.0 when using the relevant comparisons.
If the consumer requests that data be filtered by a non-existent field, NO data is returned and the server must provide the associated transaction status code information of:
- CodeMajor value is 'failure';
- Severity value is 'error';
- CodeMinor value is 'invalid_filter_field'.
Field Selection
For the read collection calls, such as 'getAllUsers()', it should be possible for requesters to select the range of fields to be returned. By default, all mandatory and optional fields from the core description of the resource MUST be returned. If any fields are specified in the request then the implementation should return those fields AND ONLY those fields i.e. the multiplicity rules for an element are overridden. Any field or fields from the Data Model MAY be requested.
Field selection request MUST make use of the reserved word 'fields'. The value of fields is a comma delimited list of the fields to return. An example of a request message to ask for a list of Users returning only the 'firstname' and 'lastname':
GET https://imsglobal.org/ims/oneroster/rostering/v1p2/users?fields=firstname,lastname
If the consumer requests that data be selected using non-existent field, ALL data for the record is returned. If the consumer requests that data be selected using a blank field the request will be treated as an invalid request. The server must provide the associated transaction status code information of:
- CodeMajor value is 'failure';
- Severity value is 'error';
- CodeMinor value is 'invalid_selection_field'.
Security Framework
This Section is NORMATIVE.
The information in this section is taken from the IMS Security Framework 1EdTech Security Framework 1.1 Final Release: that document describes the security approaches to be adopted in all IMS specifications.
Transport Security
As the service will be exposing personal data related to students and their grades, it is important that only authorized users have access to that data. Further, data exchanges should be encrypted to ensure that packet sniffing cannot be used to read the data in transit.
All Requests and Responses MUST be sent using Transport Layer Security (TLS). Exchange of the signed certificates for endpoints between clients and servers is beyond the scope of this specification. Implementers of clients and servers are advised to look at the various 3rd party certificate signing services in order to obtain signed certificates.
Support for TLS 1.2 and/or TLS 1.3 is REQUIRED and SSL MUST NOT be used.
Authorization
The use of OAuth 2.0 Client Credentials with the Bearer Token obtained using the mechanism described in [RFC 6749] (Section 4.4) is REQUIRED. Details of this are given in the IMS Security Framework [Security, 21].
Authorization will use the OAuth 2.0 Client Credentials Grant mechanism. In this mechanism the client can request an access token using only its client credentials (using the consumer key and secret information) when the client is requesting access to the protected resources under its control, or those of another resource owner that have been previously arranged with the authorization server. In this approach the client issues a client authentication request and receives in response an access token. Issuing of an access token is defined in Section 5 of [RFC 6749].
The request for an access token, including three scopes (scopename1, scopename2 and scopenamex) takes the form of (this uses TLS):
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&scope=scopename1%20scopename2%20scopenamex
The inclusion of scopes is REQUIRED and the set of scopes available for this service are defined in the following subsection. The authorization encoding is produced using the consumer key and secret. Note that the request for an access token MAY use a HTTP GET request.
The authorization encoding is produced using the consumer key and secret. Success results in the granting of the access token with a response of:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token" : "2YotnFZFEjr1zCsicMWpAA",
"token_type" : "bearer",
"expires_in" : 3600,
"scope" : "scopename1 scopename2 scopenamex"
}
The recommended default value for the "expires_in" is 3600s. The authorization server MUST provide the scopes which are made available (either all or a subset of the scopes supplied in the request).
The client utilizes the access token to authenticate with the resource using the HTTP "Authorization" request header field [RFC 2617] with an authentication scheme defined by the specification of the access token type used, such as [RFC 6750]. An example of the use of the bearer token is:
GET /resource/1 HTTP/1.1
Host: provider.example.com
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
NOTE: This exchange assumes that TLS is used to secure the link.
Scopes
https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
| Operation | HTTP Verb | Endpoint |
|---|---|---|
| getAllClasses | GET | /classes |
| getClassesForCourse | GET | /courses/{courseSourcedId}/classes |
| getTeacher | GET | /teachers/{sourcedId} |
| getSchool | GET | /schools/{sourcedId} |
| getClassesForSchool | GET | /schools/{schoolSourcedId}/classes |
| getCourse | GET | /courses/{sourcedId} |
| getGradingPeriod | GET | /gradingPeriods/{sourcedId} |
| getCoursesForSchool | GET | /schools/{schoolSourcedId}/courses |
| getTeachersForSchool | GET | /schools/{schoolSourcedId}/teachers |
| getUser | GET | /users/{sourcedId} |
| getAllTerms | GET | /terms |
| getTeachersForClassInSchool | GET | /schools/{schoolSourcedId}/classes/{classSourcedId}/teachers |
| getAllOrgs | GET | /orgs |
| getEnrollmentsForClassInSchool | GET | /schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments |
| getClassesForTerm | GET | /terms/{termSourcedId}/classes |
| getGradingPeriodsForTerm | GET | /terms/{termSourcedId}/gradingPeriods |
| getAllSchools | GET | /schools |
| getAllEnrollments | GET | /enrollments |
| getAllUsers | GET | /users |
| getClassesForStudent | GET | /students/{studentSourcedId}/classes |
| getAcademicSession | GET | /academicSessions/{sourcedId} |
| getAllCourses | GET | /courses |
| getStudent | GET | /students/{sourcedId} |
| getStudentsForClassInSchool | GET | /schools/{schoolSourcedId}/classes/{classSourcedId}/students |
| getAllTeachers | GET | /teachers |
| getClassesForTeacher | GET | /teachers/{teacherSourcedId}/classes |
| getClassesForUser | GET | /users/{userSourcedId}/classes |
| getTerm | GET | /terms/{sourcedId} |
| getAllAcademicSessions | GET | /academicSessions |
| getStudentsForClass | GET | /classes/{classSourcedId}/students |
| getEnrollment | GET | /enrollments/{sourcedId} |
| getClass | GET | /classes/{sourcedId} |
| getAllStudents | GET | /students |
| getStudentsForSchool | GET | /schools/{schoolSourcedId}/students |
| getEnrollmentsForSchool | GET | /schools/{schoolSourcedId}/enrollments |
| getAllGradingPeriods | GET | /gradingPeriods |
| getTermsForSchool | GET | /schools/{schoolSourcedId}/terms |
| getOrg | GET | /orgs/{sourcedId} |
| getTeachersForClass | GET | /classes/{classSourcedId}/teachers |
https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
| Operation | HTTP Verb | Endpoint |
|---|---|---|
| getAllClasses | GET | /classes |
| getTeacher | GET | /teachers/{sourcedId} |
| getSchool | GET | /schools/{sourcedId} |
| getCourse | GET | /courses/{sourcedId} |
| getGradingPeriod | GET | /gradingPeriods/{sourcedId} |
| getUser | GET | /users/{sourcedId} |
| getTerm | GET | /terms/{sourcedId} |
| getAllTerms | GET | /terms |
| getAllAcademicSessions | GET | /academicSessions |
| getAllOrgs | GET | /orgs |
| getEnrollment | GET | /enrollments/{sourcedId} |
| getClass | GET | /classes/{sourcedId} |
| getAllSchools | GET | /schools |
| getAllEnrollments | GET | /enrollments |
| getAllStudents | GET | /students |
| getAllUsers | GET | /users |
| getAcademicSession | GET | /academicSessions/{sourcedId} |
| getAllCourses | GET | /courses |
| getStudent | GET | /students/{sourcedId} |
| getAllGradingPeriods | GET | /gradingPeriods |
| getAllTeachers | GET | /teachers |
| getOrg | GET | /orgs/{sourcedId} |
https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
| Operation | HTTP Verb | Endpoint |
|---|---|---|
| getDemographics | GET | /demographics/{sourcedId} |
| getAllDemographics | GET | /demographics |
Data Model
Data Classes
AcadSessionGUIDRef Class
This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | AcadSessionGUIDRefTypeEnum | The type of object being referenced i.e. an 'academicSession'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
AcademicSession Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | N/A |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. | [1] | N/A |
| title | NormalizedString | The title/label for the academic session. | [1] | N/A |
| startDate | 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'. | [1] | N/A |
| endDate | 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'. | [1] | N/A |
| type | SessionTypeEnumExt | The type of academic session. This is based upon an enumerated vocabulary. | [1] | N/A |
| parent | AcadSessionGUIDRef | The link to parent AcademicSession i.e. an AcademicSession 'sourcedId'. | [0..1] | N/A |
| children | AcadSessionGUIDRef | The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'. | [0..*] | N/A |
| schoolYear | 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'. | [1] | N/A |
| metadata | MetadataGeneral | All AcademicSession objects MAY be extended using the MetadataGeneral class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
AcademicSessionSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| academicSessions | AcademicSession | The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
Class Class
A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | N/A |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| title | NormalizedString | The tile/label for the class. | [1] | N/A |
| classCode | NormalizedString | The class code. | [0..1] | N/A |
| classType | ClassTypeEnumExt | The type of class. This is based upon an enumerated vocabulary. | [0..1] | N/A |
| location | NormalizedString | The location for the class e.g. 'Room 19'. | [0..1] | N/A |
| grades | 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. | [0..*] | N/A |
| subjects | NormalizedString | The set of subjects addressed by this class e.g. 'chemistry'. | [0..*] | N/A |
| course | CourseGUIDRef | The link to the associated course i.e. the Course 'sourcedId'. | [1] | N/A |
| school | OrgGUIDRef | The link to the associated school i.e. the School 'sourcedId'. | [1] | N/A |
| terms | AcadSessionGUIDRef | The links to the set of terms or semesters (academicSession) i.e. the set of 'sourcedIds' for the terms within the associated school year. | [1..*] | N/A |
| subjectCodes | 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). | [0..*] | N/A |
| periods | NormalizedString | The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc. | [0..*] | N/A |
| resources | ResourceGUIDRef | The links to the set of associated resources i.e. the Resource 'sourcedIds'. | [0..*] | N/A |
| metadata | MetadataClass | Class objects MAY be extended using the MetadataClass class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
ClassGUIDRef Class
This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | ClassGUIDRefTypeEnum | The type of object being referenced i.e. a 'class'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
ClassSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| classes | Class | The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
Course Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | N/A |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| title | NormalizedString | The title of the course. | [1] | N/A |
| schoolYear | AcadSessionGUIDRef | The link to academicSession i.e. the AcademicSession 'sourcedId'. | [0..1] | N/A |
| courseCode | NormalizedString | The assigned course code. | [1] | N/A |
| grades | 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. | [0..*] | N/A |
| subjects | NormalizedString | The set of subjects addressed by this course. This is a set of human readable strings. | [0..*] | N/A |
| org | OrgGUIDRef | The link to org i.e. the 'sourcedId' of the org. | [0..1] | N/A |
| subjectCodes | 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). | [0..*] | N/A |
| resources | ResourceGUIDRef | The links to the associated resources if applicable i.e. the resource 'sourcedIds'. | [0..*] | N/A |
| metadata | MetadataCourse | All Course objects MAY be extended using the MetadataCourse class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
CourseGUIDRef Class
This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | CourseGUIDRefTypeEnum | The type of object being referenced i.e. a 'course'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
CourseSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| courses | Course | The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
Credential Class
The container for a single set of credentials for an account.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | String | The type of credentials for the profile. This should be indicative of when this specific credential should be used. | [1] | N/A |
| username | NormalizedString | The username. | [1] | Identifier |
| password | String | The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed. | [0..1] | Credentials |
Demographics Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | SourcedId |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| birthDate | Date | The date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'. | [0..1] | Demographics |
| sex | GenderEnumExt | The sex of the individual. The permitted values are from an enumerated list. | [0..1] | Demographics |
| americanIndianOrAlaskaNative | TrueFalseEnum | Identification of whether or not the user is an American Indian or Alaska Native ethnicity. | [0..1] | Demographics |
| asian | TrueFalseEnum | Identification of whether or not the user is of Asian ethnicity. | [0..1] | Demographics |
| blackOrAfricanAmerican | TrueFalseEnum | Identification of whether or not the user is black or African American ethnicity. | [0..1] | Demographics |
| nativeHawaiianOrOtherPacificIslander | TrueFalseEnum | Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity. | [0..1] | Demographics |
| white | TrueFalseEnum | Identification of whether or not the user is of white ethnicity. | [0..1] | Demographics |
| demographicRaceTwoOrMoreRaces | TrueFalseEnum | Identification of whether or not the user has a demographic of two or more race ethnicities. | [0..1] | Demographics |
| hispanicOrLatinoEthnicity | TrueFalseEnum | Identification of whether or not the user is Hispanic or of Latino ethnicity. | [0..1] | Demographics |
| countryOfBirthCode | NormalizedString | The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. | [0..1] | Demographics |
| stateOfBirthAbbreviation | NormalizedString | The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. | [0..1] | Demographics |
| cityOfBirth | NormalizedString | The name of the city in which the user was born. | [0..1] | Demographics |
| publicSchoolResidenceStatus | NormalizedString | An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary. | [0..1] | Demographics |
| metadata | MetadataGeneral | All Demographics objects MAY be extended using the MetadataGeneral class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
DemographicsSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| demographics | Demographics | The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
Enrollment Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | N/A |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| user | UserGUIDRef | The link to the enrolled User i.e. the User 'sourcedId'. | [1] | SourcedIdRef |
| class | ClassGUIDRef | The link to the class on which the user is enrolled i.e. the Class 'sourcedId'. | [1] | N/A |
| school | OrgGUIDRef | The link to the school at which the class is being provided i.e. an Org 'sourcedId'. | [1] | N/A |
| role | EnrolRoleEnumExt | The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary. | [1] | Personal |
| primary | TrueFalseEnum | 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. | [0..1] | N/A |
| beginDate | 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'. | [0..1] | N/A |
| endDate | 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'. | [0..1] | N/A |
| metadata | MetadataEnrollment | All Enrollment objects MAY be extended using the MetadataGeneral class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
EnrollmentSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| enrollments | Enrollment | The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
GUIDRef Class
This is the generic container for reference to a OneRoster object that has a sourcedId (GUID). This MUST be used for objects that hasve a predefined GUIDRef container.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
MetadataClass Class
The container for the proprietary extensions in the Class class.
This class can be extended with additional properties.
MetadataCourse Class
The container for the proprietary extensions in the Course class.
This class can be extended with additional properties.
MetadataEnrollment Class
The container for the proprietary extensions in the Enrollment class.
This class can be extended with additional properties.
MetadataGeneral Class
The container for the proprietary extensions.
This class can be extended with additional properties.
MetadataOrg Class
The container for the proprietary extensions for the Org class.
This class can be extended with additional properties.
MetadataUser Class
The container for the proprietary extensions in the User class.
This class can be extended with additional properties.
Org Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | N/A |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| name | NormalizedString | The name of the organization. | [1] | N/A |
| type | OrgTypeEnumExt | The type of organization. This uses a predefined vocabulary. | [1] | N/A |
| identifier | Identifier | Human readable identifier for this org e.g. NCES ID. | [1] | N/A |
| parent | OrgGUIDRef | The 'sourcedId' of the parent organization. | [0..1] | N/A |
| children | OrgGUIDRef | The 'sourcedIds' for the set of child organizations. | [0..*] | N/A |
| metadata | MetadataOrg | All Org objects MAY be extended using the MetadataGeneral class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used. | [0..1] | N/A |
OrgGUIDRef Class
This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | OrgGUIDRefTypeEnum | The type of object being referenced i.e. an 'org'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
OrgSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| orgs | Org | The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
ResourceGUIDRef Class
This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | ResourceGUIDRefTypeEnum | The type of object being referenced i.e. a 'resource'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
Role Class
The container for one mapping between a role and an org for the user.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| roleType | RoleTypeEnum | 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. | [1] | N/A |
| role | RoleEnumExt | The role of the user in the org. The permitted values are from an enumerated list. | [1] | Personal |
| org | OrgGUIDRef | The link to the associated org i.e. the 'sourcedId' for the org. | [1] | N/A |
| userProfile | 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. | [0..1] | CredentialsIdRef |
| beginDate | Date | The start date on which the role becomes active (inclusive). | [0..1] | N/A |
| endDate | Date | The end date on which the role becomes inactive (exclusive). | [0..1] | N/A |
SingleAcademicSession Class
This is the container for a single academicSession instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| academicSession | AcademicSession | The instance of the single academicSession for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleClass Class
This is the container for a single class instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| class | Class | The instance of the single class for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleCourse Class
This is the container for a single course instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| course | Course | The instance of the single course for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleDemographics Class
This is the container for a single demographics instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| demographics | Demographics | The instance of the single demographics for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleEnrollment Class
This is the container for a single enrollment instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| enrollment | Enrollment | The instance of the single enrollment for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleOrg Class
This is the container for a single org instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| org | Org | The instance of the single org for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
SingleUser Class
This is the container for a single user instance for a message payload.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| user | User | The instance of the single user for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned. | [1] | N/A |
User Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| sourcedId | SourcedId | 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. | [1] | SourcedId |
| status | BaseStatusEnum | All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'. | [1] | N/A |
| dateLastModified | DateTime | All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601]. | [1] | N/A |
| userMasterIdentifier | 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. | [0..1] | Identifier |
| username | 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. | [0..1] | Personal |
| userIds | UserId | 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. | [0..*] | N/A |
| enabledUser | TrueFalseEnum | 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. | [1] | N/A |
| givenName | NormalizedString | The given name. Also, known as the first name. | [1] | Personal |
| familyName | NormalizedString | The family name. Also, known as the last name. | [1] | Personal |
| middleName | NormalizedString | The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'. | [0..1] | Personal |
| preferredFirstName | NormalizedString | The user's preferred first name. This attribute was added in version 1.2. | [0..1] | Personal |
| preferredMiddleName | NormalizedString | The user's preferred middle name(s). This attribute was added in version 1.2. | [0..1] | Personal |
| preferredLastName | NormalizedString | The user's preferred last name. This attribute was added in version 1.2. | [0..1] | Personal |
| pronouns | 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. | [0..1] | Personal |
| roles | Role | The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples. | [1..*] | N/A |
| userProfiles | UserProfile | The set of system/app/tool profiles for the user. | [0..*] | N/A |
| primaryOrg | OrgGUIDRef | It is possible for a user to be a member of more than one organization and to have one or more roles in an organization. This attribute identifies the 'sourcedId' of the primary organization. | [0..1] | N/A |
| identifier | Identifier | An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead. | [0..1] | Identifier |
| NormalizedString | The email address for the user. | [0..1] | Identifier | |
| sms | NormalizedString | The SMS number for the user. | [0..1] | Identifier |
| phone | NormalizedString | The phone number for the user. | [0..1] | Identifier |
| agents | UserGUIDRef | The links to other people i.e. User 'sourcedIds'. | [0..*] | SourcedIdRef |
| grades | 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. | [0..*] | N/A |
| password | String | A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted. | [0..1] | Credentials |
| resources | ResourceGUIDRef | 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]. | [0..*] | N/A |
| metadata | MetadataUser | User objects MAY be extended using the MetadataGeneralUser | [0..1] | N/A |
UserGUIDRef Class
This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | UserGUIDRefTypeEnum | The type of object being referenced i.e. a 'user'. | [1] | N/A |
| href | AnyURI | The URI for the type of object being referenced. | [1] | N/A |
| sourcedId | SourcedId | The globally unique identifier of the object being referenced. | [1] | N/A |
UserId Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | NormalizedString | The type of identifier. This is no predefined vocabulary. | [1] | Identifier |
| identifier | Identifier | The user identifier. | [1] | Identifier |
UserProfile Class
The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| profileId | 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. | [1] | Identifier |
| profileType | 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. | [1] | N/A |
| vendorId | NormalizedString | The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile. | [1] | N/A |
| applicationId | 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. | [0..1] | N/A |
| description | String | A human readable description of the use of the profile. This should not contain any security information for access to the account. | [0..1] | N/A |
| credentials | Credential | The set of credentials that are available for access to this profile. | [0..*] | N/A |
UserSet Class
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.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| users | User | The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned. | [0..*] | N/A |
imsx_CodeMinor Class
This is the container for the set of code minor status codes reported in the responses from the Service Provider.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMinorField | imsx_CodeMinorField | Each reported code minor status code. | [1..*] | N/A |
imsx_CodeMinorField Class
This is the container for a single code minor status code.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMinorFieldName | NormalizedString | This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. | [1] | N/A |
| imsx_codeMinorFieldValue | imsx_CodeMinorValueEnum | The code minor status code (this is a value from the corresponding enumerated vocabulary). | [1] | N/A |
imsx_StatusInfo Class
This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMajor | imsx_CodeMajorEnum | The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field. | [1] | N/A |
| imsx_severity | imsx_SeverityEnum | The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. | [1] | N/A |
| imsx_description | String | A human readable description supplied by the entity creating the status code information. | [0..1] | N/A |
| imsx_CodeMinor | imsx_CodeMinor | The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes. | [0..1] | N/A |
Enumeration Classes
AcadSessionGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| academicSession | String | An object that is an 'Academic Session'. | [1] | N/A |
BaseStatusEnum Enumeration
The set of permitted values for the type of status of a record.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| active | String | An active record. | [1] | N/A |
| tobedeleted | String | Denotes that it is safe to delete the record. | [1] | N/A |
ClassGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to a 'Class'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| class | String | An object that is a 'Class'. | [1] | N/A |
ClassTypeEnum Enumeration
The set of permitted values for the type of class.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| homeroom | String | The homeroom (form) assigned to the class. | [1] | N/A |
| scheduled | String | The class as assigned in the timetable. | [1] | N/A |
ClassTypeEnumExt Enumeration
The data-type for the 'classType' characteristic for a class. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| homeroom | String | The homeroom (form) assigned to the class. | [1] | N/A |
| scheduled | String | The class as assigned in the timetable. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
CourseGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to a 'Course'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| course | String | An object that is a 'Course'. | [1] | N/A |
EnrolRoleEnum Enumeration
The set of permitted values for the type of role for an enrollment.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| administrator | String | Someone who has administrative responsibility for the Class. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
EnrolRoleEnumExt Enumeration
The data-type for the 'role' characteristic for an enrollment. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| administrator | String | Someone who has administrative responsibility for the Class. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
GenderEnum Enumeration
The set of permitted values for the gender of a user.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| male | String | Gender of Male. | [1] | N/A |
| female | String | Gender of Female. | [1] | N/A |
| unspecified | String | Unspecified as no data entry for this field has been made. Value added in OR 1.2. | [1] | N/A |
| other | String | A gender that is known but which is not either Male or Female. Value added in OR 1.2. | [1] | N/A |
GenderEnumExt Enumeration
The data-type for the 'gender' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| male | String | Gender of Male. | [1] | N/A |
| female | String | Gender of Female. | [1] | N/A |
| unspecified | String | Unspecified as no data entry for this field has been made. Value added in OR 1.2. | [1] | N/A |
| other | String | A gender that is known but which is not either Male or Female. Value added in OR 1.2. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
OrgGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to an 'Org'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| org | String | An object that is an 'Org'. | [1] | N/A |
OrgTypeEnum Enumeration
The set of permitted values for the type of orgs.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| department | String | Denotes a department. A department may be a subset in a school or a set of schools. | [1] | N/A |
| district | String | Denotes a school district. | [1] | N/A |
| local | String | Denotes a local organization. V1.0 instances used this value to identify districts. | [1] | N/A |
| national | String | Denotes a national level organization. | [1] | N/A |
| school | String | Denotes a school. This is the unit of assignment for classes and enrollments. | [1] | N/A |
| state | String | Denotes a state level organization. | [1] | N/A |
OrgTypeEnumExt Enumeration
The data-type for the 'type' characteristic for an org. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| department | String | Denotes a department. A department may be a subset in a school or a set of schools. | [1] | N/A |
| district | String | Denotes a school district. | [1] | N/A |
| local | String | Denotes a local organization. V1.0 instances used this value to identify districts. | [1] | N/A |
| national | String | Denotes a national level organization. | [1] | N/A |
| school | String | Denotes a school. This is the unit of assignment for classes and enrollments. | [1] | N/A |
| state | String | Denotes a state level organization. | [1] | N/A |
ResourceGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to a 'Resource'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| resource | String | An object that is a 'Resource'. | [1] | N/A |
RoleEnum Enumeration
The set of permitted values for the type of role for a user.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| aide | String | Someone who provides appropriate aid to the user but NOT also one of the other roles. | [1] | N/A |
| counselor | String | Someone who has care/pastoral supervision responsibility for one or more people. | [1] | N/A |
| districtAdministrator | String | The district administrator will have responsibility for systems within the district sites and/or for system that are accessed by the schools in the district. | [1] | N/A |
| guardian | String | Guardian of the user and NOT the Mother or Father. May also be a Relative. | [1] | N/A |
| parent | String | Mother or father of the user. | [1] | N/A |
| principal | String | The schools' Principal or other very senior academic administrator in the School. The principal will have access to confidential/private data about teachers, etc. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| relative | String | A relative of the user and NOT the Mother or Father. May also be the Guardian. | [1] | N/A |
| siteAdministrator | String | Site administrator in the organization e.g. School. The site administrator will have responsibility for all of the systems at the site. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| systemAdministrator | String | System administrator in the organization e.g. School. The system administrator will have responsibility for one of more systems at the site. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
RoleEnumExt Enumeration
The data-type for the 'role' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| aide | String | Someone who provides appropriate aid to the user but NOT also one of the other roles. | [1] | N/A |
| counselor | String | Someone who has care/pastoral supervision responsibility for one or more people. | [1] | N/A |
| districtAdministrator | String | The district administrator will have responsibility for systems within the district sites and/or for system that are accessed by the schools in the district. | [1] | N/A |
| guardian | String | Guardian of the user and NOT the Mother or Father. May also be a Relative. | [1] | N/A |
| parent | String | Mother or father of the user. | [1] | N/A |
| principal | String | The schools' Principal or other very senior academic administrator in the School. The principal will have access to confidential/private data about teachers, etc. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| relative | String | A relative of the user and NOT the Mother or Father. May also be the Guardian. | [1] | N/A |
| siteAdministrator | String | Site administrator in the organization e.g. School. The site administrator will have responsibility for all of the systems at the site. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| systemAdministrator | String | System administrator in the organization e.g. School. The system administrator will have responsibility for one of more systems at the site. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
RoleTypeEnum Enumeration
The type of role for the role-org mappings. Each mapping must have a role type of which only one must have a roleType of 'primary' and the others must be 'secondary'.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| primary | String | Denotes that this is the primary role within the associated org. Only one role can be primary for each org. | [1] | N/A |
| secondary | String | Denotes this is a secondary role within the associated org i.e. some other role is the primary. | [1] | N/A |
SessionTypeEnum Enumeration
The set of permitted values for the academic session of a user.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| gradingPeriod | String | Denotes a period over which some grade/result is to be awarded. | [1] | N/A |
| semester | String | Denotes a semester period. Typically there a two semesters per schoolYear. | [1] | N/A |
| schoolYear | String | Denotes the school year. | [1] | N/A |
| term | String | Denotes a term period. Typically there are three terms per schoolYear. | [1] | N/A |
SessionTypeEnumExt Enumeration
The data-type for the type of academic session. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| gradingPeriod | String | Denotes a period over which some grade/result is to be awarded. | [1] | N/A |
| semester | String | Denotes a semester period. Typically there a two semesters per schoolYear. | [1] | N/A |
| schoolYear | String | Denotes the school year. | [1] | N/A |
| term | String | Denotes a term period. Typically there are three terms per schoolYear. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
TrueFalseEnum Enumeration
This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| true | String | Requires the boolean value to be given as 'true'. | [1] | N/A |
| false | String | Requires the boolean value to be given as 'false'. | [1] | N/A |
UserGUIDRefTypeEnum Enumeration
This is the fixed enumeration for a GUIDRef that points to a 'User.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| user | String | An object that is a 'User'. | [1] | N/A |
imsx_CodeMajorEnum Enumeration
The permitted vocabulary for the values for the CodeMajor field.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| success | String | Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response. | [1] | N/A |
| processing | String | Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services. | [1] | N/A |
| failure | String | Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields. | [1] | N/A |
| unsupported | String | Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation. | [1] | N/A |
imsx_CodeMinorValueEnum Enumeration
The permitted vocabulary for the values for the CodeMinorValue field.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| fullsuccess | String | The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '200' for a successful 'GET' request; '201' for a successful 'PUT' request; '204' for a successful 'DELETE' request. | [1] | N/A |
| invalid_filter_field | String | An invalid filter field was supplied and so the sorting was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. | [1] | N/A |
| invalid_selection_field | String | An invalid selection field was supplied and data filtering on the selection criteria was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. | [1] | N/A |
| invaliddata | String | This error condition may occur if a JSON request/response body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and a HTTP code of '422'. | [1] | N/A |
| unauthorisedrequest | String | The request was not correctly authorised. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'. | [1] | N/A |
| forbidden | String | This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'. | [1] | N/A |
| server_busy | String | The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'. | [1] | N/A |
| unknownobject | String | The supplied identifier is unknown in the Service Provider and so the object could not be changed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '404'. | [1] | N/A |
| internal_server_error | String | This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'. | [1] | N/A |
imsx_SeverityEnum Enumeration
The permitted vocabulary for the values for the Severity field.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| status | String | The request has been completed and a response was received from the Service Provider. | [1] | N/A |
| warning | String | The request has only been partially completed. For an asynchronous service a further response should be expected. | [1] | N/A |
| error | String | A significant error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request). | [1] | N/A |
OrderByEnum Enumeration
No Description
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| asc | String | No Description | [1] | N/A |
| desc | String | No Description | [1] | N/A |
Derived Classes
EnumExtString Class
The data-type that enables an enumerated vocabulary to be extended.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
Identifier Class
The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.
SourcedId Class
The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.
AnyURI Class
No Description
Boolean Class
No Description
Date Class
No Description
DateTime Class
No Description
Decimal Class
No Description
Integer Class
No Description
Namespace Class
No Description
This class can be extended with additional properties.
NonNegativeInteger Class
No Description
NormalizedString Class
No Description
PositiveInteger Class
No Description
String Class
No Description
Void Class
No Description
Union Classes
ClassTypeEnumExt Class
The data-type for the 'classType' characteristic for a class. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| homeroom | String | The homeroom (form) assigned to the class. | [1] | N/A |
| scheduled | String | The class as assigned in the timetable. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
EnrolRoleEnumExt Class
The data-type for the 'role' characteristic for an enrollment. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| administrator | String | Someone who has administrative responsibility for the Class. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
GenderEnumExt Class
The data-type for the 'gender' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| male | String | Gender of Male. | [1] | N/A |
| female | String | Gender of Female. | [1] | N/A |
| unspecified | String | Unspecified as no data entry for this field has been made. Value added in OR 1.2. | [1] | N/A |
| other | String | A gender that is known but which is not either Male or Female. Value added in OR 1.2. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
OrgTypeEnumExt Class
The data-type for the 'type' characteristic for an org. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| department | String | Denotes a department. A department may be a subset in a school or a set of schools. | [1] | N/A |
| district | String | Denotes a school district. | [1] | N/A |
| local | String | Denotes a local organization. V1.0 instances used this value to identify districts. | [1] | N/A |
| national | String | Denotes a national level organization. | [1] | N/A |
| school | String | Denotes a school. This is the unit of assignment for classes and enrollments. | [1] | N/A |
| state | String | Denotes a state level organization. | [1] | N/A |
RoleEnumExt Class
The data-type for the 'role' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
| aide | String | Someone who provides appropriate aid to the user but NOT also one of the other roles. | [1] | N/A |
| counselor | String | Someone who has care/pastoral supervision responsibility for one or more people. | [1] | N/A |
| districtAdministrator | String | The district administrator will have responsibility for systems within the district sites and/or for system that are accessed by the schools in the district. | [1] | N/A |
| guardian | String | Guardian of the user and NOT the Mother or Father. May also be a Relative. | [1] | N/A |
| parent | String | Mother or father of the user. | [1] | N/A |
| principal | String | The schools' Principal or other very senior academic administrator in the School. The principal will have access to confidential/private data about teachers, etc. | [1] | N/A |
| proctor | String | Exam proctor. | [1] | N/A |
| relative | String | A relative of the user and NOT the Mother or Father. May also be the Guardian. | [1] | N/A |
| siteAdministrator | String | Site administrator in the organization e.g. School. The site administrator will have responsibility for all of the systems at the site. | [1] | N/A |
| student | String | A student at a organization e.g. School. | [1] | N/A |
| systemAdministrator | String | System administrator in the organization e.g. School. The system administrator will have responsibility for one of more systems at the site. | [1] | N/A |
| teacher | String | A Teacher at organization e.g. School. | [1] | N/A |
SessionTypeEnumExt Class
The data-type for the type of academic session. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Attribute | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| gradingPeriod | String | Denotes a period over which some grade/result is to be awarded. | [1] | N/A |
| semester | String | Denotes a semester period. Typically there a two semesters per schoolYear. | [1] | N/A |
| schoolYear | String | Denotes the school year. | [1] | N/A |
| term | String | Denotes a term period. Typically there are three terms per schoolYear. | [1] | N/A |
| pattern | String | The regular expression to constrain the structure of the string that MUST be used when creating a new, proprietary, vocabulary term. The term must start with the substring 'ext:'. | [1] | N/A |
Primitive Types
AnyURI Primitive Type
No Description
Boolean Primitive Type
No Description
Date Primitive Type
No Description
DateTime Primitive Type
No Description
Decimal Primitive Type
No Description
Integer Primitive Type
No Description
Namespace Primitive Type
No Description
This class can be extended with additional properties.
NonNegativeInteger Primitive Type
No Description
NormalizedString Primitive Type
No Description
PositiveInteger Primitive Type
No Description
String Primitive Type
No Description
Void Primitive Type
No Description
Extending and Profiling the Binding
This Section is NON-NORMATIVE.
Extending the Binding
Proprietary extensions of the service are based upon three approaches:
The extension of the data models being manipulated by the current set of operations (including extending vocabularies); The inclusion of new operations to support new proprietary functionality; The inclusion of proprietary OAuth 2 scopes. It is NOT permitted to change the behavior of the current set of operations. Such changes MUST be supported by the creation of new operations.
Proprietary Operations
The definition of new operations should follow the same format as adopted herein. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system. A new version of the OpenAPI files should also be generated with the new operation definitions.
An example of creating such an extension is given in the accompanying Implementation Guide document 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0.
Proprietary Scopes
It is permitted to create extra OAuth 2 scopes to provide more control over the availability of various endpoints.
An example of creating such an extension is given in the accompanying Implementation Guide document 1EdTech OneRoster 1.2 Implementation Guide Final Release 1.0.
Proprietary Data Elements
It is recognized that implementers may wish to extend the specification. The preferred mechanism for doing this is for implementers to use an extension space within the OneRoster data model, and then set their parsers to read those extension attributes. Extensions are ONLY permitted using the 'metadata' attribute within the 'Base' class.
These extensions take the form of name/value pairs. The name is the label of the extension field, and the value is the value of the extension. For example, if wanting to show the extension of field "classification", with value "private" that was added/provided by "ims", the name/value pair is: "ims.classification" : "private".
It is RECOMMENDED that where extensions are used, whenever possible the name/value pairs are based upon vocabulary controlled files. This eliminates a proliferation of free text equivalencies from entering the data e.g. "Florida" vs "FL", vs "Florida, USA". In such cases either the attribute, or the value (or both) MUST be a URI that references the attribute and/or value from an appropriate vocabulary file. For example:
"http://www.nbrs.org" : "FL"
Within the OpenAPI files, uncontrolled data extensions are explicitly prohibited by the JSON Schema definition.
Proprietary Vocabulary Terms
In this version the ability to extend some of the enumerated vocabularies has been added: currently, ONLY the 'ClassTypeEnum', 'GenderEnum', 'OrgTypeEnum', 'RoleEnum' and 'SessionTypeEnum' vocabularies MAY be extended. Each proprietary term must start with the characters 'ext:'. An example is adding the two proprietary roles of 'ext:teachingasssistant' and 'ext:principal' to the 'RoleEnum' vocabulary.
Profiling the Binding
This Service can be profiled. In general, Profiling is used to:
- Refine which Interfaces are used and which operations are supported for each Interface;
- Refine the data models by increasing the constraints on the base definitions.
Valid Profiles must be restrictive i.e. optional features can be removed or constraints increased but new features must not be added. A Profile of this service is made by annotating the UML supplied with the documentation for the specification.
It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of 1EdTech. However, no matter who is responsible for creating the profile artefacts (documents, OpenAPI files, XSDs, etc.), it is strongly recommended that the 1EdTech specification tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarises the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact the 1EdTech VP of Operations at: operations@1edtech.org.
OpenAPI Listings
This Section is NORMATIVE.
Listing of the OpenAPI (JSON) File
{
"openapi" : "3.0.1",
"info" : {
"title" : "OpenAPI schema for OneRoster Rostering Service",
"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. ",
"termsOfService" : "https://www.imsglobal.org/license.html",
"contact" : {
"name" : "IMS Global",
"url" : "https://www.imsglobal.org",
"email" : "support@imsglobal.org"
},
"license" : {
"name" : "IMS Global Specification Document License",
"url" : "https://www.imsglobal.org/license.html"
},
"version" : "1.2",
"x-status" : "Final",
"x-model-pid" : "org.1edtech.orrostering.v1p2.model",
"x-service-pid" : "org.1edtech.orrostering.v1p2.rest.servicemodel",
"x-src-operation-count" : 41,
"x-oas-operation-count" : 41
},
"servers" : [ {
"url" : "https://example.org/ims/oneroster/rostering/v1p2",
"description" : "The above Server URL should be changed to the actual server location."
} ],
"tags" : [ {
"name" : "OrgsManagement",
"description" : "This enables the management of orgs i.e. an organization involved in the learning in some form or other."
}, {
"name" : "CoursesManagement",
"description" : "This enables the management of Courses i.e. programme of study."
}, {
"name" : "ClassesManagement",
"description" : "This enables the management of Classes i.e. scheduled learning of courses."
}, {
"name" : "EnrollmentsManagement",
"description" : "This enables the management of the enrollments of users (teachers, students, etc.) on classes supplied by schools."
}, {
"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" : "AcademicSessionsManagement",
"description" : "This enables the management of academic sessions i.e. periods of academic activity."
}, {
"name" : "SchoolsManagement",
"description" : "This enables the management of information about schools. A school is a type of 'org'."
}, {
"name" : "TermsManagement",
"description" : "This enables the management of information about terms (a term is a type of 'academicSession')."
}, {
"name" : "GradingPeriodsManagement",
"description" : "This enables the management of grading periods i.e. specific academic sessions."
}, {
"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" : "UsersManagement",
"description" : "This enables the management of information about users (including students and teachers)."
} ],
"paths" : {
"/orgs" : {
"get" : {
"tags" : [ "OrgsManagement" ],
"summary" : "The REST GET operation for the getAllOrgs() API call.",
"description" : "To read, get, a collection of orgs i.e. all orgs.",
"operationId" : "getAllOrgs",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/OrgSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllOrgs() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallorgs.operation"
}
},
"/orgs/{sourcedId}" : {
"get" : {
"tags" : [ "OrgsManagement" ],
"summary" : "The REST GET operation for the getOrg() API call.",
"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.",
"operationId" : "getOrg",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this org.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleOrg"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getOrg() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getorg.operation"
}
},
"/courses" : {
"get" : {
"tags" : [ "CoursesManagement" ],
"summary" : "The REST GET operation for the getAllCourses() API call.",
"description" : "To read, get, a collection of courses i.e. all courses.",
"operationId" : "getAllCourses",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CourseSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllCourses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallcourses.operation"
}
},
"/courses/{sourcedId}" : {
"get" : {
"tags" : [ "CoursesManagement" ],
"summary" : "The REST GET operation for the getCourse() API call.",
"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.",
"operationId" : "getCourse",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this course.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleCourse"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getcourse.operation"
}
},
"/courses/{courseSourcedId}/classes" : {
"get" : {
"tags" : [ "CoursesManagement" ],
"summary" : "The REST GET operation for the getClassesForCourse() API call.",
"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.",
"operationId" : "getClassesForCourse",
"parameters" : [ {
"name" : "courseSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific course.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForCourse() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforcourse.operation"
}
},
"/classes" : {
"get" : {
"tags" : [ "ClassesManagement" ],
"summary" : "The REST GET operation for the getAllClasses() API call.",
"description" : "To read, get, a collection of classes i.e. all classes.",
"operationId" : "getAllClasses",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllClasses() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallclasses.operation"
}
},
"/classes/{sourcedId}" : {
"get" : {
"tags" : [ "ClassesManagement" ],
"summary" : "The REST GET operation for the getClass() API call.",
"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.",
"operationId" : "getClass",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleClass"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclass.operation"
}
},
"/classes/{classSourcedId}/students" : {
"get" : {
"tags" : [ "ClassesManagement" ],
"summary" : "The REST GET operation for the getStudentsForClass() API call.",
"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.",
"operationId" : "getStudentsForClass",
"parameters" : [ {
"name" : "classSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getstudentsforclass.operation"
}
},
"/classes/{classSourcedId}/teachers" : {
"get" : {
"tags" : [ "ClassesManagement" ],
"summary" : "The REST GET operation for the getTeachersForClass() API call.",
"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.",
"operationId" : "getTeachersForClass",
"parameters" : [ {
"name" : "classSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForClass() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getteachersforclass.operation"
}
},
"/enrollments" : {
"get" : {
"tags" : [ "EnrollmentsManagement" ],
"summary" : "The REST GET operation for the getAllEnrollments() API call.",
"description" : "To read, get, a collection of enrollments i.e. all enrollments.",
"operationId" : "getAllEnrollments",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/EnrollmentSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllEnrollments() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallenrollments.operation"
}
},
"/enrollments/{sourcedId}" : {
"get" : {
"tags" : [ "EnrollmentsManagement" ],
"summary" : "The REST GET operation for the getEnrollment() API call.",
"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.",
"operationId" : "getEnrollment",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this enrollment.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleEnrollment"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollment() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getenrollment.operation"
}
},
"/demographics" : {
"get" : {
"tags" : [ "DemographicsManagement" ],
"summary" : "The REST GET operation for the getAllDemographics() API call.",
"description" : "To read, get, a collection of demographics i.e. all demographics.",
"operationId" : "getAllDemographics",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/DemographicsSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getalldemographics.operation"
}
},
"/demographics/{sourcedId}" : {
"get" : {
"tags" : [ "DemographicsManagement" ],
"summary" : "The REST GET operation for the getDemographics() API call.",
"description" : "To read, get, a specific user demographics. If the specified user and/or demographics record cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
"operationId" : "getDemographics",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this user demographics.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleDemographics"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getDemographics() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getdemographics.operation"
}
},
"/academicSessions" : {
"get" : {
"tags" : [ "AcademicSessionsManagement" ],
"summary" : "The REST GET operation for the getAllAcademicSessions() API call.",
"description" : "To read, get, a collection of academic sessions i.e. all academic sessions.",
"operationId" : "getAllAcademicSessions",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcademicSessionSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllAcademicSessions() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallacademicsessions.operation"
}
},
"/academicSessions/{sourcedId}" : {
"get" : {
"tags" : [ "AcademicSessionsManagement" ],
"summary" : "The REST GET operation for the getAcademicSession() API call.",
"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.",
"operationId" : "getAcademicSession",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this academic session.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleAcademicSession"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAcademicSession() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getacademicsession.operation"
}
},
"/schools" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getAllSchools() API call.",
"description" : "To read, get, a collection of schools i.e. all schools.",
"operationId" : "getAllSchools",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/OrgSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllSchools() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallschools.operation"
}
},
"/schools/{sourcedId}" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getSchool() API call.",
"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.",
"operationId" : "getSchool",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleOrg"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getschool.operation"
}
},
"/schools/{schoolSourcedId}/courses" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getCoursesForSchool() API call.",
"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.",
"operationId" : "getCoursesForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CourseSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getCoursesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getcoursesforschool.operation"
}
},
"/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getEnrollmentsForClassInSchool() API call.",
"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.",
"operationId" : "getEnrollmentsForClassInSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"name" : "classSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/EnrollmentSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollmentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getenrollmentsforclassinschool.operation"
}
},
"/schools/{schoolSourcedId}/classes/{classSourcedId}/students" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getStudentsForClassInSchool() API call.",
"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.",
"operationId" : "getStudentsForClassInSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"name" : "classSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getstudentsforclassinschool.operation"
}
},
"/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getTeachersForClassInSchool() API call.",
"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.",
"operationId" : "getTeachersForClassInSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"name" : "classSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the class.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForClassInSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getteachersforclassinschool.operation"
}
},
"/schools/{schoolSourcedId}/enrollments" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getEnrollmentsForSchool() API call.",
"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.",
"operationId" : "getEnrollmentsForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/EnrollmentSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollmentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getenrollmentsforschool.operation"
}
},
"/schools/{schoolSourcedId}/students" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getStudentsForSchool() API call.",
"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.",
"operationId" : "getStudentsForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getstudentsforschool.operation"
}
},
"/schools/{schoolSourcedId}/teachers" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getTeachersForSchool() API call.",
"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.",
"operationId" : "getTeachersForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getteachersforschool.operation"
}
},
"/schools/{schoolSourcedId}/terms" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getTermsForSchool() API call.",
"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.",
"operationId" : "getTermsForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcademicSessionSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTermsForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.gettermsforschool.operation"
}
},
"/schools/{schoolSourcedId}/classes" : {
"get" : {
"tags" : [ "SchoolsManagement" ],
"summary" : "The REST GET operation for the getClassesForSchool() API call.",
"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.",
"operationId" : "getClassesForSchool",
"parameters" : [ {
"name" : "schoolSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific school.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForSchool() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforschool.operation"
}
},
"/terms" : {
"get" : {
"tags" : [ "TermsManagement" ],
"summary" : "The REST GET operation for the getAllTerms() API call.",
"description" : "To read, get, a collection of terms i.e. all terms.",
"operationId" : "getAllTerms",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcademicSessionSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllTerms() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallterms.operation"
}
},
"/terms/{sourcedId}" : {
"get" : {
"tags" : [ "TermsManagement" ],
"summary" : "The REST GET operation for the getTerm() API call.",
"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.",
"operationId" : "getTerm",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this term.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleAcademicSession"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getterm.operation"
}
},
"/terms/{termSourcedId}/classes" : {
"get" : {
"tags" : [ "TermsManagement" ],
"summary" : "The REST GET operation for the getClassesForTerm() API call.",
"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.",
"operationId" : "getClassesForTerm",
"parameters" : [ {
"name" : "termSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific term.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforterm.operation"
}
},
"/terms/{termSourcedId}/gradingPeriods" : {
"get" : {
"tags" : [ "TermsManagement" ],
"summary" : "The REST GET operation for the getGradingPeriodsForTerm() API call.",
"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.",
"operationId" : "getGradingPeriodsForTerm",
"parameters" : [ {
"name" : "termSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific term.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcademicSessionSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getGradingPeriodsForTerm() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getgradingperiodsforterm.operation"
}
},
"/gradingPeriods" : {
"get" : {
"tags" : [ "GradingPeriodsManagement" ],
"summary" : "The REST GET operation for the getAllGradingPeriods() API call.",
"description" : "To read, get, a collection of grading periods i.e. all academic sessions.",
"operationId" : "getAllGradingPeriods",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/AcademicSessionSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllGradingPeriods() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallgradingperiods.operation"
}
},
"/gradingPeriods/{sourcedId}" : {
"get" : {
"tags" : [ "GradingPeriodsManagement" ],
"summary" : "The REST GET operation for the getGradingPeriod() API call.",
"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.",
"operationId" : "getGradingPeriod",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this grading period.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleAcademicSession"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getGradingPeriod() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getgradingperiod.operation"
}
},
"/students" : {
"get" : {
"tags" : [ "StudentsManagement" ],
"summary" : "The REST GET operation for the getAllStudents() API call.",
"description" : "To read, get, a collection of students i.e. all students.",
"operationId" : "getAllStudents",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllStudents() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallstudents.operation"
}
},
"/students/{sourcedId}" : {
"get" : {
"tags" : [ "StudentsManagement" ],
"summary" : "The REST GET operation for the getStudent() API call.",
"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.",
"operationId" : "getStudent",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this student.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleUser"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getstudent.operation"
}
},
"/students/{studentSourcedId}/classes" : {
"get" : {
"tags" : [ "StudentsManagement" ],
"summary" : "The REST GET operation for the getClassesForStudent() API call.",
"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.",
"operationId" : "getClassesForStudent",
"parameters" : [ {
"name" : "studentSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific student.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForStudent() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforstudent.operation"
}
},
"/teachers" : {
"get" : {
"tags" : [ "TeachersManagement" ],
"summary" : "The REST GET operation for the getAllTeachers() API call.",
"description" : "To read, get, a collection of teachers i.e. all teachers.",
"operationId" : "getAllTeachers",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllTeachers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallteachers.operation"
}
},
"/teachers/{sourcedId}" : {
"get" : {
"tags" : [ "TeachersManagement" ],
"summary" : "The REST GET operation for the getTeacher() API call.",
"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.",
"operationId" : "getTeacher",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this teacher.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleUser"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getteacher.operation"
}
},
"/teachers/{teacherSourcedId}/classes" : {
"get" : {
"tags" : [ "TeachersManagement" ],
"summary" : "The REST GET operation for the getClassesForTeacher() API call.",
"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.",
"operationId" : "getClassesForTeacher",
"parameters" : [ {
"name" : "teacherSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific teacher.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForTeacher() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforteacher.operation"
}
},
"/users" : {
"get" : {
"tags" : [ "UsersManagement" ],
"summary" : "The REST GET operation for the getAllUsers() API call.",
"description" : "To read, get, a collection of users i.e. all users (including students and teachers).",
"operationId" : "getAllUsers",
"parameters" : [ {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UserSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getAllUsers() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getallusers.operation"
}
},
"/users/{sourcedId}" : {
"get" : {
"tags" : [ "UsersManagement" ],
"summary" : "The REST GET operation for the getUser() API call.",
"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.",
"operationId" : "getUser",
"parameters" : [ {
"name" : "sourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for this user.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/SingleUser"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"404" : {
"description" : "The 404 (NOT_FOUND) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly", "https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getuser.operation"
}
},
"/users/{userSourcedId}/classes" : {
"get" : {
"tags" : [ "UsersManagement" ],
"summary" : "The REST GET operation for the getClassesForUser() API call.",
"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.",
"operationId" : "getClassesForUser",
"parameters" : [ {
"name" : "userSourcedId",
"in" : "path",
"description" : "The unique identifier, GUID, for the specific user.",
"required" : true,
"allowEmptyValue" : false,
"style" : "simple",
"schema" : {
"type" : "string",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness."
}
}, {
"$ref" : "#/components/parameters/limit"
}, {
"$ref" : "#/components/parameters/offset"
}, {
"$ref" : "#/components/parameters/sort"
}, {
"$ref" : "#/components/parameters/orderBy"
}, {
"$ref" : "#/components/parameters/filter"
}, {
"$ref" : "#/components/parameters/fields"
} ],
"responses" : {
"default" : {
"description" : "The default response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"200" : {
"description" : "The 200 (OK) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ClassSet"
}
}
}
},
"400" : {
"description" : "The 400 (BAD_REQUEST) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"401" : {
"description" : "The 401 (UNAUTHORIZED) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"403" : {
"description" : "The 403 (FORBIDDEN) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"405" : {
"description" : "The 405 (METHOD_NOT_ALLOWED) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"422" : {
"description" : "The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"429" : {
"description" : "The 429 (TOO_MANY_REQUESTS) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
},
"500" : {
"description" : "The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForUser() API call.",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/imsx_StatusInfo"
}
}
}
}
},
"security" : [ {
"OAuth2CC" : [ "https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly" ]
} ],
"x-operation-pid" : "org.1edtech.orrostering.v1p2.rest.getclassesforuser.operation"
}
}
},
"components" : {
"schemas" : {
"UserGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. a 'user'.",
"enum" : [ "user" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.userguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.userguidref.class"
},
"OrgGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. an 'org'.",
"enum" : [ "org" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.orgguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.orgguidref.class"
},
"SingleOrg" : {
"required" : [ "org" ],
"type" : "object",
"properties" : {
"org" : {
"$ref" : "#/components/schemas/Org"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single org instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singleorg.class"
},
"User" : {
"required" : [ "sourcedId", "status", "dateLastModified", "enabledUser", "givenName", "familyName", "roles" ],
"type" : "object",
"properties" : {
"primaryOrg" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataUser"
},
"roles" : {
"minItems" : 1,
"type" : "array",
"description" : "The set of roles for each of the orgs to which the user is affilliated. This is expressed as a set of role/org tuples.",
"items" : {
"$ref" : "#/components/schemas/Role"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.role.class"
},
"preferredLastName" : {
"type" : "string",
"description" : "The user's preferred last name. This attribute was added in version 1.2.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"grades" : {
"minItems" : 0,
"type" : "array",
"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.",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"password" : {
"type" : "string",
"description" : "A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.string.class"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"userIds" : {
"minItems" : 0,
"type" : "array",
"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.",
"items" : {
"$ref" : "#/components/schemas/UserId"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.userid.class"
},
"familyName" : {
"type" : "string",
"description" : "The family name. Also, known as the last name.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"sms" : {
"type" : "string",
"description" : "The SMS number for the user.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"email" : {
"type" : "string",
"description" : "The email address for the user.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"identifier" : {
"type" : "string",
"description" : "An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.identifier.class"
},
"enabledUser" : {
"type" : "string",
"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.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"givenName" : {
"type" : "string",
"description" : "The given name. Also, known as the first name.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"userProfiles" : {
"minItems" : 0,
"type" : "array",
"description" : "The set of system/app/tool profiles for the user.",
"items" : {
"$ref" : "#/components/schemas/UserProfile"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.userprofile.class"
},
"userMasterIdentifier" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"resources" : {
"minItems" : 0,
"type" : "array",
"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].",
"items" : {
"$ref" : "#/components/schemas/ResourceGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.resourceguidref.class"
},
"preferredMiddleName" : {
"type" : "string",
"description" : "The user's preferred middle name(s). This attribute was added in version 1.2.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"agents" : {
"minItems" : 0,
"type" : "array",
"description" : "The links to other people i.e. User 'sourcedIds'.",
"items" : {
"$ref" : "#/components/schemas/UserGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.userguidref.class"
},
"phone" : {
"type" : "string",
"description" : "The phone number for the user.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"preferredFirstName" : {
"type" : "string",
"description" : "The user's preferred first name. This attribute was added in version 1.2.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"middleName" : {
"type" : "string",
"description" : "The set of middle names. If more than one middle name is needed separate using a space e.g. 'Wingarde Granville'.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"pronouns" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
},
"username" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
}
},
"additionalProperties" : false,
"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. ",
"x-class-pid" : "org.1edtech.orrostering.v1p2.user.class"
},
"UserProfile" : {
"required" : [ "profileId", "profileType", "vendorId" ],
"type" : "object",
"properties" : {
"profileType" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"credentials" : {
"minItems" : 0,
"type" : "array",
"description" : "The set of credentials that are available for access to this profile.",
"items" : {
"$ref" : "#/components/schemas/Credential"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.credential.class"
},
"profileId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"vendorId" : {
"type" : "string",
"description" : "The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"description" : {
"type" : "string",
"description" : "A human readable description of the use of the profile. This should not contain any security information for access to the account.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.string.class"
},
"applicationId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
}
},
"additionalProperties" : false,
"description" : "The container for the information about a User Profile that will provide the user with access to some system, application, tool, etc.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.userprofile.class"
},
"MetadataGeneral" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadatageneral.class"
},
"UserSet" : {
"type" : "object",
"properties" : {
"users" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of user instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/User"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.user.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.userset.class"
},
"CourseGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. a 'course'.",
"enum" : [ "course" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.courseguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.courseguidref.class"
},
"Org" : {
"required" : [ "sourcedId", "status", "dateLastModified", "name", "type", "identifier" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"identifier" : {
"type" : "string",
"description" : "Human readable identifier for this org e.g. NCES ID.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.identifier.class"
},
"parent" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataOrg"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"children" : {
"minItems" : 0,
"type" : "array",
"description" : "The 'sourcedIds' for the set of child organizations.",
"items" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.orgguidref.class"
},
"name" : {
"type" : "string",
"description" : "The name of the organization.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"type" : {
"description" : "The type of organization. This uses a predefined vocabulary.",
"anyOf" : [ {
"type" : "string",
"enum" : [ "department", "district", "local", "national", "school", "state" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.orgtypeenumext.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.org.class"
},
"EnrollmentSet" : {
"type" : "object",
"properties" : {
"enrollments" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of enrollment instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/Enrollment"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.enrollment.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.enrollmentset.class"
},
"AcadSessionGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"enum" : [ "academicSession" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.acadsessionguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.acadsessionguidref.class"
},
"MetadataOrg" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions for the Org class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadataorg.class"
},
"SingleAcademicSession" : {
"required" : [ "academicSession" ],
"type" : "object",
"properties" : {
"academicSession" : {
"$ref" : "#/components/schemas/AcademicSession"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single academicSession instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singleacademicsession.class"
},
"imsx_CodeMinorField" : {
"required" : [ "imsx_codeMinorFieldName", "imsx_codeMinorFieldValue" ],
"type" : "object",
"properties" : {
"imsx_codeMinorFieldName" : {
"type" : "string",
"description" : "This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"imsx_codeMinorFieldValue" : {
"type" : "string",
"description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
"enum" : [ "fullsuccess", "invalid_filter_field", "invalid_selection_field", "invaliddata", "unauthorisedrequest", "forbidden", "server_busy", "unknownobject", "internal_server_error" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.imsx_codeminorvalueenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single code minor status code.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.imsx_codeminorfield.class"
},
"ClassGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. a 'class'.",
"enum" : [ "class" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.classguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.classguidref.class"
},
"Demographics" : {
"required" : [ "sourcedId", "status", "dateLastModified" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is 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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataGeneral"
},
"nativeHawaiianOrOtherPacificIslander" : {
"type" : "string",
"description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"countryOfBirthCode" : {
"type" : "string",
"description" : "The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"sex" : {
"description" : "The sex of the individual. The permitted values are from an enumerated list.",
"anyOf" : [ {
"type" : "string",
"enum" : [ "male", "female", "unspecified", "other" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.genderenumext.class"
},
"hispanicOrLatinoEthnicity" : {
"type" : "string",
"description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"asian" : {
"type" : "string",
"description" : "Identification of whether or not the user is of Asian ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"demographicRaceTwoOrMoreRaces" : {
"type" : "string",
"description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"birthDate" : {
"type" : "string",
"description" : "The date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"americanIndianOrAlaskaNative" : {
"type" : "string",
"description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"publicSchoolResidenceStatus" : {
"type" : "string",
"description" : "An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"cityOfBirth" : {
"type" : "string",
"description" : "The name of the city in which the user was born.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"white" : {
"type" : "string",
"description" : "Identification of whether or not the user is of white ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"blackOrAfricanAmerican" : {
"type" : "string",
"description" : "Identification of whether or not the user is black or African American ethnicity.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
},
"stateOfBirthAbbreviation" : {
"type" : "string",
"description" : "The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.demographics.class"
},
"MetadataCourse" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions in the Course class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadatacourse.class"
},
"SingleClass" : {
"required" : [ "class" ],
"type" : "object",
"properties" : {
"class" : {
"$ref" : "#/components/schemas/Class"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single class instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singleclass.class"
},
"SingleUser" : {
"required" : [ "user" ],
"type" : "object",
"properties" : {
"user" : {
"$ref" : "#/components/schemas/User"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single user instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singleuser.class"
},
"DemographicsSet" : {
"type" : "object",
"properties" : {
"demographics" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of demographics instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/Demographics"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.demographics.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.demographicsset.class"
},
"MetadataClass" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions in the Class class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadataclass.class"
},
"imsx_StatusInfo" : {
"required" : [ "imsx_codeMajor", "imsx_severity" ],
"type" : "object",
"properties" : {
"imsx_CodeMinor" : {
"$ref" : "#/components/schemas/imsx_CodeMinor"
},
"imsx_codeMajor" : {
"type" : "string",
"description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
"enum" : [ "success", "processing", "failure", "unsupported" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.imsx_codemajorenum.class"
},
"imsx_description" : {
"type" : "string",
"description" : "A human readable description supplied by the entity creating the status code information.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.string.class"
},
"imsx_severity" : {
"type" : "string",
"description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
"enum" : [ "status", "warning", "error" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.imsx_severityenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.imsx_statusinfo.class"
},
"Enrollment" : {
"required" : [ "sourcedId", "status", "dateLastModified", "user", "class", "school", "role" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"beginDate" : {
"type" : "string",
"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'.",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataEnrollment"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"role" : {
"description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
"anyOf" : [ {
"type" : "string",
"enum" : [ "administrator", "proctor", "student", "teacher" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.enrolroleenumext.class"
},
"school" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"endDate" : {
"type" : "string",
"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'.",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"user" : {
"$ref" : "#/components/schemas/UserGUIDRef"
},
"class" : {
"$ref" : "#/components/schemas/ClassGUIDRef"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
},
"primary" : {
"type" : "string",
"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.",
"enum" : [ "true", "false" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.truefalseenum.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.enrollment.class"
},
"SingleCourse" : {
"required" : [ "course" ],
"type" : "object",
"properties" : {
"course" : {
"$ref" : "#/components/schemas/Course"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single course instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singlecourse.class"
},
"AcademicSession" : {
"required" : [ "sourcedId", "status", "dateLastModified", "title", "startDate", "endDate", "type", "schoolYear" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"parent" : {
"$ref" : "#/components/schemas/AcadSessionGUIDRef"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataGeneral"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"endDate" : {
"type" : "string",
"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'.",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"children" : {
"minItems" : 0,
"type" : "array",
"description" : "The set of links to the child AcademicSessions i.e. a set of AcademicSession 'sourcedIds'.",
"items" : {
"$ref" : "#/components/schemas/AcadSessionGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.acadsessionguidref.class"
},
"schoolYear" : {
"type" : "string",
"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'.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"title" : {
"type" : "string",
"description" : "The title/label for the academic session.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"type" : {
"description" : "The type of academic session. This is based upon an enumerated vocabulary.",
"anyOf" : [ {
"type" : "string",
"enum" : [ "gradingPeriod", "semester", "schoolYear", "term" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.sessiontypeenumext.class"
},
"startDate" : {
"type" : "string",
"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'.",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
}
},
"additionalProperties" : false,
"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. ",
"x-class-pid" : "org.1edtech.orrostering.v1p2.academicsession.class"
},
"Course" : {
"required" : [ "sourcedId", "status", "dateLastModified", "title", "courseCode" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataCourse"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"org" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"subjectCodes" : {
"minItems" : 0,
"type" : "array",
"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).",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"courseCode" : {
"type" : "string",
"description" : "The assigned course code.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"subjects" : {
"minItems" : 0,
"type" : "array",
"description" : "The set of subjects addressed by this course. This is a set of human readable strings. ",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"schoolYear" : {
"$ref" : "#/components/schemas/AcadSessionGUIDRef"
},
"resources" : {
"minItems" : 0,
"type" : "array",
"description" : "The links to the associated resources if applicable i.e. the resource 'sourcedIds'.",
"items" : {
"$ref" : "#/components/schemas/ResourceGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.resourceguidref.class"
},
"grades" : {
"minItems" : 0,
"type" : "array",
"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.",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"title" : {
"type" : "string",
"description" : "The title of the course.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.course.class"
},
"AcademicSessionSet" : {
"type" : "object",
"properties" : {
"academicSessions" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of academicSession instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/AcademicSession"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.academicsession.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.academicsessionset.class"
},
"ResourceGUIDRef" : {
"required" : [ "type", "href", "sourcedId" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"description" : "The globally unique identifier of the object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"href" : {
"type" : "string",
"description" : "The URI for the type of object being referenced.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
},
"type" : {
"type" : "string",
"description" : "The type of object being referenced i.e. a 'resource'.",
"enum" : [ "resource" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.resourceguidreftypeenum.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"x-class-pid" : "org.1edtech.orrostering.v1p2.resourceguidref.class"
},
"Credential" : {
"required" : [ "type", "username" ],
"type" : "object",
"properties" : {
"password" : {
"type" : "string",
"description" : "The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.string.class"
},
"type" : {
"type" : "string",
"description" : "The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.string.class"
},
"username" : {
"type" : "string",
"description" : "The username.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
}
},
"additionalProperties" : true,
"description" : "The container for a single set of credentials for an account.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.credential.class"
},
"Role" : {
"required" : [ "roleType", "role", "org" ],
"type" : "object",
"properties" : {
"beginDate" : {
"type" : "string",
"description" : "The start date on which the role becomes active (inclusive). ",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"role" : {
"description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
"anyOf" : [ {
"type" : "string",
"enum" : [ "aide", "counselor", "districtAdministrator", "guardian", "parent", "principal", "proctor", "relative", "siteAdministrator", "student", "systemAdministrator", "teacher" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.roleenumext.class"
},
"org" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"endDate" : {
"type" : "string",
"description" : "The end date on which the role becomes inactive (exclusive). ",
"format" : "date",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.date.class"
},
"roleType" : {
"type" : "string",
"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.",
"enum" : [ "primary", "secondary" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.roletypeenum.class"
},
"userProfile" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.anyuri.class"
}
},
"additionalProperties" : false,
"description" : "The container for one mapping between a role and an org for the user.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.role.class"
},
"imsx_CodeMinor" : {
"required" : [ "imsx_codeMinorField" ],
"type" : "object",
"properties" : {
"imsx_codeMinorField" : {
"minItems" : 1,
"type" : "array",
"description" : "Each reported code minor status code.",
"items" : {
"$ref" : "#/components/schemas/imsx_CodeMinorField"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.imsx_codeminorfield.class"
}
},
"additionalProperties" : false,
"description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.imsx_codeminor.class"
},
"ClassSet" : {
"type" : "object",
"properties" : {
"classes" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of class instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/Class"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.class.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.classset.class"
},
"UserId" : {
"required" : [ "type", "identifier" ],
"type" : "object",
"properties" : {
"identifier" : {
"type" : "string",
"description" : "The user identifier.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.identifier.class"
},
"type" : {
"type" : "string",
"description" : "The type of identifier. This is no predefined vocabulary.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.userid.class"
},
"CourseSet" : {
"type" : "object",
"properties" : {
"courses" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of course instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/Course"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.course.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.courseset.class"
},
"SingleDemographics" : {
"required" : [ "demographics" ],
"type" : "object",
"properties" : {
"demographics" : {
"$ref" : "#/components/schemas/Demographics"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single demographics instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singledemographics.class"
},
"Class" : {
"required" : [ "sourcedId", "status", "dateLastModified", "title", "course", "school", "terms" ],
"type" : "object",
"properties" : {
"sourcedId" : {
"type" : "string",
"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.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.derived.sourcedid.class"
},
"classCode" : {
"type" : "string",
"description" : "The class code.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"metadata" : {
"$ref" : "#/components/schemas/MetadataClass"
},
"subjectCodes" : {
"minItems" : 0,
"type" : "array",
"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).",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"subjects" : {
"minItems" : 0,
"type" : "array",
"description" : "The set of subjects addressed by this class e.g. 'chemistry'.",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"resources" : {
"minItems" : 0,
"type" : "array",
"description" : "The links to the set of associated resources i.e. the Resource 'sourcedIds'.",
"items" : {
"$ref" : "#/components/schemas/ResourceGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.resourceguidref.class"
},
"grades" : {
"minItems" : 0,
"type" : "array",
"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.",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"title" : {
"type" : "string",
"description" : "The tile/label for the class.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"dateLastModified" : {
"type" : "string",
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"format" : "date-time",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.datetime.class"
},
"school" : {
"$ref" : "#/components/schemas/OrgGUIDRef"
},
"terms" : {
"minItems" : 1,
"type" : "array",
"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.",
"items" : {
"$ref" : "#/components/schemas/AcadSessionGUIDRef"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.acadsessionguidref.class"
},
"course" : {
"$ref" : "#/components/schemas/CourseGUIDRef"
},
"periods" : {
"minItems" : 0,
"type" : "array",
"description" : "The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
"items" : {
"type" : "string"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"location" : {
"type" : "string",
"description" : "The location for the class e.g. 'Room 19'.",
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.primitive.normalizedstring.class"
},
"classType" : {
"description" : "The type of class. This is based upon an enumerated vocabulary.",
"anyOf" : [ {
"type" : "string",
"enum" : [ "homeroom", "scheduled" ]
}, {
"pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+",
"type" : "string"
} ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.classtypeenumext.class"
},
"status" : {
"type" : "string",
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"enum" : [ "active", "tobedeleted" ],
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.basestatusenum.class"
}
},
"additionalProperties" : false,
"description" : "A class is an instance of a course, onto which students and teachers are enrolled. A class is typically held within a term.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.class.class"
},
"MetadataUser" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions in the User class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadatauser.class"
},
"SingleEnrollment" : {
"required" : [ "enrollment" ],
"type" : "object",
"properties" : {
"enrollment" : {
"$ref" : "#/components/schemas/Enrollment"
}
},
"additionalProperties" : false,
"description" : "This is the container for a single enrollment instance for a message payload.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.singleenrollment.class"
},
"OrgSet" : {
"type" : "object",
"properties" : {
"orgs" : {
"minItems" : 0,
"type" : "array",
"description" : "The collection of org instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
"items" : {
"$ref" : "#/components/schemas/Org"
},
"x-srcprop-pid" : "org.1edtech.orrostering.v1p2.org.class"
}
},
"additionalProperties" : false,
"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.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.orgset.class"
},
"MetadataEnrollment" : {
"type" : "object",
"properties" : { },
"additionalProperties" : true,
"description" : "The container for the proprietary extensions in the Enrollment class.",
"x-class-pid" : "org.1edtech.orrostering.v1p2.metadataenrollment.class"
}
},
"parameters" : {
"filter" : {
"name" : "filter",
"in" : "query",
"description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. The sort order should follow the [UNICODE, 16] standard.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string"
}
},
"offset" : {
"name" : "offset",
"in" : "query",
"description" : "The number of the first record to be supplied in the segmented response message.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"minimum" : 0,
"type" : "integer",
"format" : "int32"
}
},
"limit" : {
"name" : "limit",
"in" : "query",
"description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"minimum" : 1,
"type" : "integer",
"format" : "int32"
}
},
"orderBy" : {
"name" : "orderBy",
"in" : "query",
"description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string",
"enum" : [ "asc", "desc" ]
}
},
"sort" : {
"name" : "sort",
"in" : "query",
"description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string"
}
},
"fields" : {
"name" : "fields",
"in" : "query",
"description" : "To identify the range of fields that should be supplied in the response message.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string"
}
}
},
"securitySchemes" : {
"OAuth2CC" : {
"type" : "oauth2",
"description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
"flows" : {
"clientCredentials" : {
"tokenUrl" : "https://www.imsglobal.org",
"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."
}
}
}
}
}
}
}
Listing of the OpenAPI (YAML) File
openapi: 3.0.1
info:
title: OpenAPI schema for OneRoster Rostering Service
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. "
termsOfService: https://www.imsglobal.org/license.html
contact:
name: IMS Global
url: https://www.imsglobal.org
email: support@imsglobal.org
license:
name: IMS Global Specification Document License
url: https://www.imsglobal.org/license.html
version: "1.2"
x-status: Final
x-model-pid: org.1edtech.orrostering.v1p2.model
x-service-pid: org.1edtech.orrostering.v1p2.rest.servicemodel
x-src-operation-count: 41
x-oas-operation-count: 41
servers:
- url: https://example.org/ims/oneroster/rostering/v1p2
description: The above Server URL should be changed to the actual server location.
tags:
- name: OrgsManagement
description: This enables the management of orgs i.e. an organization involved in
the learning in some form or other.
- name: CoursesManagement
description: This enables the management of Courses i.e. programme of study.
- name: ClassesManagement
description: This enables the management of Classes i.e. scheduled learning of courses.
- name: EnrollmentsManagement
description: "This enables the management of the enrollments of users (teachers,\
\ students, etc.) on classes supplied by schools."
- 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: AcademicSessionsManagement
description: This enables the management of academic sessions i.e. periods of academic
activity.
- name: SchoolsManagement
description: This enables the management of information about schools. A school
is a type of 'org'.
- name: TermsManagement
description: This enables the management of information about terms (a term is a
type of 'academicSession').
- name: GradingPeriodsManagement
description: This enables the management of grading periods i.e. specific academic
sessions.
- 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: UsersManagement
description: This enables the management of information about users (including students
and teachers).
paths:
/orgs:
get:
tags:
- OrgsManagement
summary: The REST GET operation for the getAllOrgs() API call.
description: "To read, get, a collection of orgs i.e. all orgs."
operationId: getAllOrgs
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllOrgs() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllOrgs() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/OrgSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllOrgs() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllOrgs() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllOrgs() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllOrgs() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllOrgs()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllOrgs() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllOrgs()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallorgs.operation
/orgs/{sourcedId}:
get:
tags:
- OrgsManagement
summary: The REST GET operation for the getOrg() API call.
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."
operationId: getOrg
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this org."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleOrg"
"400":
description: The 400 (BAD_REQUEST) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getOrg() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getOrg() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getOrg() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getorg.operation
/courses:
get:
tags:
- CoursesManagement
summary: The REST GET operation for the getAllCourses() API call.
description: "To read, get, a collection of courses i.e. all courses."
operationId: getAllCourses
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllCourses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllCourses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/CourseSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllCourses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllCourses() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllCourses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllCourses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllCourses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllCourses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllCourses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallcourses.operation
/courses/{sourcedId}:
get:
tags:
- CoursesManagement
summary: The REST GET operation for the getCourse() API call.
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."
operationId: getCourse
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this course."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleCourse"
"400":
description: The 400 (BAD_REQUEST) response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getCourse() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getCourse() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getcourse.operation
/courses/{courseSourcedId}/classes:
get:
tags:
- CoursesManagement
summary: The REST GET operation for the getClassesForCourse() API call.
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.
operationId: getClassesForCourse
parameters:
- name: courseSourcedId
in: path
description: "The unique identifier, GUID, for the specific course."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForCourse() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForCourse() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForCourse()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforcourse.operation
/classes:
get:
tags:
- ClassesManagement
summary: The REST GET operation for the getAllClasses() API call.
description: "To read, get, a collection of classes i.e. all classes."
operationId: getAllClasses
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllClasses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllClasses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllClasses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllClasses() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllClasses() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllClasses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllClasses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllClasses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllClasses()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallclasses.operation
/classes/{sourcedId}:
get:
tags:
- ClassesManagement
summary: The REST GET operation for the getClass() API call.
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."
operationId: getClass
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleClass"
"400":
description: The 400 (BAD_REQUEST) response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClass() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClass() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclass.operation
/classes/{classSourcedId}/students:
get:
tags:
- ClassesManagement
summary: The REST GET operation for the getStudentsForClass() API call.
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."
operationId: getStudentsForClass
parameters:
- name: classSourcedId
in: path
description: "The unique identifier, GUID, for the class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getStudentsForClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getStudentsForClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getStudentsForClass() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getstudentsforclass.operation
/classes/{classSourcedId}/teachers:
get:
tags:
- ClassesManagement
summary: The REST GET operation for the getTeachersForClass() API call.
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."
operationId: getTeachersForClass
parameters:
- name: classSourcedId
in: path
description: "The unique identifier, GUID, for the class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTeachersForClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTeachersForClass() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTeachersForClass() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForClass()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getteachersforclass.operation
/enrollments:
get:
tags:
- EnrollmentsManagement
summary: The REST GET operation for the getAllEnrollments() API call.
description: "To read, get, a collection of enrollments i.e. all enrollments."
operationId: getAllEnrollments
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllEnrollments() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllEnrollments() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/EnrollmentSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllEnrollments() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllEnrollments()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllEnrollments() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllEnrollments()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllEnrollments()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllEnrollments()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllEnrollments()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallenrollments.operation
/enrollments/{sourcedId}:
get:
tags:
- EnrollmentsManagement
summary: The REST GET operation for the getEnrollment() API call.
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."
operationId: getEnrollment
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this enrollment."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getEnrollment() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getEnrollment() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleEnrollment"
"400":
description: The 400 (BAD_REQUEST) response to the getEnrollment() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getEnrollment() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getEnrollment() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getEnrollment() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getEnrollment()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollment()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getEnrollment()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollment()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getenrollment.operation
/demographics:
get:
tags:
- DemographicsManagement
summary: The REST GET operation for the getAllDemographics() API call.
description: "To read, get, a collection of demographics i.e. all demographics."
operationId: getAllDemographics
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/DemographicsSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllDemographics() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getalldemographics.operation
/demographics/{sourcedId}:
get:
tags:
- DemographicsManagement
summary: The REST GET operation for the getDemographics() API call.
description: "To read, get, a specific user demographics. If the specified user\
\ and/or demographics record cannot be identified within the service provider\
\ then a status code of 'unknownobject' must be reported."
operationId: getDemographics
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this user demographics."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleDemographics"
"400":
description: The 400 (BAD_REQUEST) response to the getDemographics() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getDemographics() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getDemographics() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getDemographics()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getdemographics.operation
/academicSessions:
get:
tags:
- AcademicSessionsManagement
summary: The REST GET operation for the getAllAcademicSessions() API call.
description: "To read, get, a collection of academic sessions i.e. all academic\
\ sessions."
operationId: getAllAcademicSessions
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllAcademicSessions() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllAcademicSessions() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/AcademicSessionSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllAcademicSessions()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallacademicsessions.operation
/academicSessions/{sourcedId}:
get:
tags:
- AcademicSessionsManagement
summary: The REST GET operation for the getAcademicSession() API call.
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."
operationId: getAcademicSession
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this academic session."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAcademicSession() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAcademicSession() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleAcademicSession"
"400":
description: The 400 (BAD_REQUEST) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAcademicSession() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getAcademicSession() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAcademicSession()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getacademicsession.operation
/schools:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getAllSchools() API call.
description: "To read, get, a collection of schools i.e. all schools."
operationId: getAllSchools
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllSchools() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllSchools() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/OrgSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllSchools() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllSchools() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllSchools() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllSchools()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllSchools()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllSchools()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllSchools()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallschools.operation
/schools/{sourcedId}:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getSchool() API call.
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."
operationId: getSchool
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleOrg"
"400":
description: The 400 (BAD_REQUEST) response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getschool.operation
/schools/{schoolSourcedId}/courses:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getCoursesForSchool() API call.
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."
operationId: getCoursesForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getCoursesForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getCoursesForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/CourseSet"
"400":
description: The 400 (BAD_REQUEST) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getCoursesForSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getCoursesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getcoursesforschool.operation
/schools/{schoolSourcedId}/classes/{classSourcedId}/enrollments:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getEnrollmentsForClassInSchool() API
call.
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."
operationId: getEnrollmentsForClassInSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- name: classSourcedId
in: path
description: "The unique identifier, GUID, for the class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/EnrollmentSet"
"400":
description: The 400 (BAD_REQUEST) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollmentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getenrollmentsforclassinschool.operation
/schools/{schoolSourcedId}/classes/{classSourcedId}/students:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getStudentsForClassInSchool() API call.
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."
operationId: getStudentsForClassInSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- name: classSourcedId
in: path
description: "The unique identifier, GUID, for the class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getStudentsForClassInSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getstudentsforclassinschool.operation
/schools/{schoolSourcedId}/classes/{classSourcedId}/teachers:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getTeachersForClassInSchool() API call.
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."
operationId: getTeachersForClassInSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- name: classSourcedId
in: path
description: "The unique identifier, GUID, for the class."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTeachersForClassInSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForClassInSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getteachersforclassinschool.operation
/schools/{schoolSourcedId}/enrollments:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getEnrollmentsForSchool() API call.
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."
operationId: getEnrollmentsForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getEnrollmentsForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getEnrollmentsForSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/EnrollmentSet"
"400":
description: The 400 (BAD_REQUEST) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getEnrollmentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getenrollmentsforschool.operation
/schools/{schoolSourcedId}/students:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getStudentsForSchool() API call.
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."
operationId: getStudentsForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getStudentsForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getStudentsForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getStudentsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getstudentsforschool.operation
/schools/{schoolSourcedId}/teachers:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getTeachersForSchool() API call.
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."
operationId: getTeachersForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTeachersForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTeachersForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTeachersForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getteachersforschool.operation
/schools/{schoolSourcedId}/terms:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getTermsForSchool() API call.
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."
operationId: getTermsForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTermsForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTermsForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/AcademicSessionSet"
"400":
description: The 400 (BAD_REQUEST) response to the getTermsForSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTermsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTermsForSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTermsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTermsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTermsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTermsForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.gettermsforschool.operation
/schools/{schoolSourcedId}/classes:
get:
tags:
- SchoolsManagement
summary: The REST GET operation for the getClassesForSchool() API call.
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."
operationId: getClassesForSchool
parameters:
- name: schoolSourcedId
in: path
description: "The unique identifier, GUID, for the specific school."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForSchool() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForSchool() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForSchool()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforschool.operation
/terms:
get:
tags:
- TermsManagement
summary: The REST GET operation for the getAllTerms() API call.
description: "To read, get, a collection of terms i.e. all terms."
operationId: getAllTerms
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllTerms() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllTerms() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/AcademicSessionSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllTerms() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllTerms() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllTerms() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllTerms()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllTerms()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllTerms() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllTerms()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallterms.operation
/terms/{sourcedId}:
get:
tags:
- TermsManagement
summary: The REST GET operation for the getTerm() API call.
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."
operationId: getTerm
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this term."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleAcademicSession"
"400":
description: The 400 (BAD_REQUEST) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getterm.operation
/terms/{termSourcedId}/classes:
get:
tags:
- TermsManagement
summary: The REST GET operation for the getClassesForTerm() API call.
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.
operationId: getClassesForTerm
parameters:
- name: termSourcedId
in: path
description: "The unique identifier, GUID, for the specific term."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForTerm() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforterm.operation
/terms/{termSourcedId}/gradingPeriods:
get:
tags:
- TermsManagement
summary: The REST GET operation for the getGradingPeriodsForTerm() API call.
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.
operationId: getGradingPeriodsForTerm
parameters:
- name: termSourcedId
in: path
description: "The unique identifier, GUID, for the specific term."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getGradingPeriodsForTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getGradingPeriodsForTerm() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/AcademicSessionSet"
"400":
description: The 400 (BAD_REQUEST) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getGradingPeriodsForTerm()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getgradingperiodsforterm.operation
/gradingPeriods:
get:
tags:
- GradingPeriodsManagement
summary: The REST GET operation for the getAllGradingPeriods() API call.
description: "To read, get, a collection of grading periods i.e. all academic\
\ sessions."
operationId: getAllGradingPeriods
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllGradingPeriods() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllGradingPeriods() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/AcademicSessionSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllGradingPeriods()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallgradingperiods.operation
/gradingPeriods/{sourcedId}:
get:
tags:
- GradingPeriodsManagement
summary: The REST GET operation for the getGradingPeriod() API call.
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."
operationId: getGradingPeriod
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this grading period."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getGradingPeriod() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getGradingPeriod() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleAcademicSession"
"400":
description: The 400 (BAD_REQUEST) response to the getGradingPeriod() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getGradingPeriod() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getGradingPeriod() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getGradingPeriod() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getGradingPeriod()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getGradingPeriod()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getGradingPeriod()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getGradingPeriod()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getgradingperiod.operation
/students:
get:
tags:
- StudentsManagement
summary: The REST GET operation for the getAllStudents() API call.
description: "To read, get, a collection of students i.e. all students."
operationId: getAllStudents
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllStudents() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllStudents() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllStudents() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllStudents() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllStudents() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllStudents()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllStudents()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllStudents()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllStudents()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallstudents.operation
/students/{sourcedId}:
get:
tags:
- StudentsManagement
summary: The REST GET operation for the getStudent() API call.
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."
operationId: getStudent
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this student."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleUser"
"400":
description: The 400 (BAD_REQUEST) response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getStudent() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getStudent() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getstudent.operation
/students/{studentSourcedId}/classes:
get:
tags:
- StudentsManagement
summary: The REST GET operation for the getClassesForStudent() API call.
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.
operationId: getClassesForStudent
parameters:
- name: studentSourcedId
in: path
description: "The unique identifier, GUID, for the specific student."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForStudent() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForStudent()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforstudent.operation
/teachers:
get:
tags:
- TeachersManagement
summary: The REST GET operation for the getAllTeachers() API call.
description: "To read, get, a collection of teachers i.e. all teachers."
operationId: getAllTeachers
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllTeachers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllTeachers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllTeachers() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllTeachers() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllTeachers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllTeachers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllTeachers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllTeachers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllTeachers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallteachers.operation
/teachers/{sourcedId}:
get:
tags:
- TeachersManagement
summary: The REST GET operation for the getTeacher() API call.
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."
operationId: getTeacher
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this teacher."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleUser"
"400":
description: The 400 (BAD_REQUEST) response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getTeacher() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getTeacher() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getteacher.operation
/teachers/{teacherSourcedId}/classes:
get:
tags:
- TeachersManagement
summary: The REST GET operation for the getClassesForTeacher() API call.
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.
operationId: getClassesForTeacher
parameters:
- name: teacherSourcedId
in: path
description: "The unique identifier, GUID, for the specific teacher."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForTeacher() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForTeacher()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforteacher.operation
/users:
get:
tags:
- UsersManagement
summary: The REST GET operation for the getAllUsers() API call.
description: "To read, get, a collection of users i.e. all users (including\
\ students and teachers)."
operationId: getAllUsers
parameters:
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getAllUsers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getAllUsers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/UserSet"
"400":
description: The 400 (BAD_REQUEST) response to the getAllUsers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getAllUsers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getAllUsers() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getAllUsers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getAllUsers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getAllUsers() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getAllUsers()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getallusers.operation
/users/{sourcedId}:
get:
tags:
- UsersManagement
summary: The REST GET operation for the getUser() API call.
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."
operationId: getUser
parameters:
- name: sourcedId
in: path
description: "The unique identifier, GUID, for this user."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/SingleUser"
"400":
description: The 400 (BAD_REQUEST) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"404":
description: The 404 (NOT_FOUND) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getUser() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getUser() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getUser() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getuser.operation
/users/{userSourcedId}/classes:
get:
tags:
- UsersManagement
summary: The REST GET operation for the getClassesForUser() API call.
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.
operationId: getClassesForUser
parameters:
- name: userSourcedId
in: path
description: "The unique identifier, GUID, for the specific user."
required: true
allowEmptyValue: false
style: simple
schema:
type: string
description: The data-type for establishing a Unique Identifier. There is
no predefined structure for the identifier and the scope MUST NOT assume
globally uniqueness.
- $ref: "#/components/parameters/limit"
- $ref: "#/components/parameters/offset"
- $ref: "#/components/parameters/sort"
- $ref: "#/components/parameters/orderBy"
- $ref: "#/components/parameters/filter"
- $ref: "#/components/parameters/fields"
responses:
default:
description: The default response to the getClassesForUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"200":
description: The 200 (OK) response to the getClassesForUser() API call.
content:
application/json:
schema:
$ref: "#/components/schemas/ClassSet"
"400":
description: The 400 (BAD_REQUEST) response to the getClassesForUser() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"401":
description: The 401 (UNAUTHORIZED) response to the getClassesForUser()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"403":
description: The 403 (FORBIDDEN) response to the getClassesForUser() API
call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"405":
description: The 405 (METHOD_NOT_ALLOWED) response to the getClassesForUser()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"422":
description: The 422 (UNPROCESSABLE_ENTTITY) response to the getClassesForUser()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"429":
description: The 429 (TOO_MANY_REQUESTS) response to the getClassesForUser()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
"500":
description: The 500 (INTERNAL_SERVER_ERROR) response to the getClassesForUser()
API call.
content:
application/json:
schema:
$ref: "#/components/schemas/imsx_StatusInfo"
security:
- OAuth2CC:
- https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly
x-operation-pid: org.1edtech.orrostering.v1p2.rest.getclassesforuser.operation
components:
schemas:
UserGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. a 'user'.
enum:
- user
x-srcprop-pid: org.1edtech.orrostering.v1p2.userguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'User' object
that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.userguidref.class
OrgGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. an 'org'.
enum:
- org
x-srcprop-pid: org.1edtech.orrostering.v1p2.orgguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'Org' object
that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.orgguidref.class
SingleOrg:
required:
- org
type: object
properties:
org:
$ref: "#/components/schemas/Org"
additionalProperties: false
description: This is the container for a single org instance for a message payload.
x-class-pid: org.1edtech.orrostering.v1p2.singleorg.class
User:
required:
- sourcedId
- status
- dateLastModified
- enabledUser
- givenName
- familyName
- roles
type: object
properties:
primaryOrg:
$ref: "#/components/schemas/OrgGUIDRef"
metadata:
$ref: "#/components/schemas/MetadataUser"
roles:
minItems: 1
type: array
description: The set of roles for each of the orgs to which the user is
affilliated. This is expressed as a set of role/org tuples.
items:
$ref: "#/components/schemas/Role"
x-srcprop-pid: org.1edtech.orrostering.v1p2.role.class
preferredLastName:
type: string
description: The user's preferred last name. This attribute was added in
version 1.2.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
grades:
minItems: 0
type: array
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."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
password:
type: string
description: A top-level password for the user. Care should be taken when
using this field and the password SHOULD be encrypted.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.string.class
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
userIds:
minItems: 0
type: array
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."
items:
$ref: "#/components/schemas/UserId"
x-srcprop-pid: org.1edtech.orrostering.v1p2.userid.class
familyName:
type: string
description: "The family name. Also, known as the last name."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
sms:
type: string
description: The SMS number for the user.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
email:
type: string
description: The email address for the user.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
identifier:
type: string
description: An identifier for the user. NOTE - This characteristic is kept
for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic
SHOULD be used instead.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.identifier.class
enabledUser:
type: string
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.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
givenName:
type: string
description: "The given name. Also, known as the first name."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
userProfiles:
minItems: 0
type: array
description: The set of system/app/tool profiles for the user.
items:
$ref: "#/components/schemas/UserProfile"
x-srcprop-pid: org.1edtech.orrostering.v1p2.userprofile.class
userMasterIdentifier:
type: string
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.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
resources:
minItems: 0
type: array
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]."
items:
$ref: "#/components/schemas/ResourceGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.resourceguidref.class
preferredMiddleName:
type: string
description: The user's preferred middle name(s). This attribute was added
in version 1.2.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
agents:
minItems: 0
type: array
description: The links to other people i.e. User 'sourcedIds'.
items:
$ref: "#/components/schemas/UserGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.userguidref.class
phone:
type: string
description: The phone number for the user.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
preferredFirstName:
type: string
description: The user's preferred first name. This attribute was added in
version 1.2.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
middleName:
type: string
description: The set of middle names. If more than one middle name is needed
separate using a space e.g. 'Wingarde Granville'.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
pronouns:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
username:
type: string
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.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
additionalProperties: false
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. "
x-class-pid: org.1edtech.orrostering.v1p2.user.class
UserProfile:
required:
- profileId
- profileType
- vendorId
type: object
properties:
profileType:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
credentials:
minItems: 0
type: array
description: The set of credentials that are available for access to this
profile.
items:
$ref: "#/components/schemas/Credential"
x-srcprop-pid: org.1edtech.orrostering.v1p2.credential.class
profileId:
type: string
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.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
vendorId:
type: string
description: "The unique identifier for the vendor of the system, tool,\
\ app, etc. which requires the use of this profile."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
description:
type: string
description: A human readable description of the use of the profile. This
should not contain any security information for access to the account.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.string.class
applicationId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
additionalProperties: false
description: "The container for the information about a User Profile that will\
\ provide the user with access to some system, application, tool, etc."
x-class-pid: org.1edtech.orrostering.v1p2.userprofile.class
MetadataGeneral:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions.
x-class-pid: org.1edtech.orrostering.v1p2.metadatageneral.class
UserSet:
type: object
properties:
users:
minItems: 0
type: array
description: The collection of user instances. The order is not significant.
The corresponding query constraints may result in no instances being returned.
items:
$ref: "#/components/schemas/User"
x-srcprop-pid: org.1edtech.orrostering.v1p2.user.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.userset.class
CourseGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. a 'course'.
enum:
- course
x-srcprop-pid: org.1edtech.orrostering.v1p2.courseguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'Course' object
that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.courseguidref.class
Org:
required:
- sourcedId
- status
- dateLastModified
- name
- type
- identifier
type: object
properties:
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
identifier:
type: string
description: Human readable identifier for this org e.g. NCES ID.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.identifier.class
parent:
$ref: "#/components/schemas/OrgGUIDRef"
metadata:
$ref: "#/components/schemas/MetadataOrg"
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
children:
minItems: 0
type: array
description: The 'sourcedIds' for the set of child organizations.
items:
$ref: "#/components/schemas/OrgGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.orgguidref.class
name:
type: string
description: The name of the organization.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
type:
description: The type of organization. This uses a predefined vocabulary.
anyOf:
- type: string
enum:
- department
- district
- local
- national
- school
- state
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.orgtypeenumext.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
additionalProperties: false
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."
x-class-pid: org.1edtech.orrostering.v1p2.org.class
EnrollmentSet:
type: object
properties:
enrollments:
minItems: 0
type: array
description: The collection of enrollment instances. The order is not significant.
The corresponding query constraints may result in no instances being returned.
items:
$ref: "#/components/schemas/Enrollment"
x-srcprop-pid: org.1edtech.orrostering.v1p2.enrollment.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.enrollmentset.class
AcadSessionGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. an 'academicSession'.
enum:
- academicSession
x-srcprop-pid: org.1edtech.orrostering.v1p2.acadsessionguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'Academic Session'
object that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.acadsessionguidref.class
MetadataOrg:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions for the Org class.
x-class-pid: org.1edtech.orrostering.v1p2.metadataorg.class
SingleAcademicSession:
required:
- academicSession
type: object
properties:
academicSession:
$ref: "#/components/schemas/AcademicSession"
additionalProperties: false
description: This is the container for a single academicSession instance for
a message payload.
x-class-pid: org.1edtech.orrostering.v1p2.singleacademicsession.class
imsx_CodeMinorField:
required:
- imsx_codeMinorFieldName
- imsx_codeMinorFieldValue
type: object
properties:
imsx_codeMinorFieldName:
type: string
description: This should contain the identity of the system that has produced
the code minor status code report. In most cases this will be the target
service provider denoted as 'TargetEndSystem'.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
imsx_codeMinorFieldValue:
type: string
description: The code minor status code (this is a value from the corresponding
enumerated vocabulary).
enum:
- fullsuccess
- invalid_filter_field
- invalid_selection_field
- invaliddata
- unauthorisedrequest
- forbidden
- server_busy
- unknownobject
- internal_server_error
x-srcprop-pid: org.1edtech.orrostering.v1p2.imsx_codeminorvalueenum.class
additionalProperties: false
description: This is the container for a single code minor status code.
x-class-pid: org.1edtech.orrostering.v1p2.imsx_codeminorfield.class
ClassGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. a 'class'.
enum:
- class
x-srcprop-pid: org.1edtech.orrostering.v1p2.classguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'Class' object
that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.classguidref.class
Demographics:
required:
- sourcedId
- status
- dateLastModified
type: object
properties:
sourcedId:
type: string
description: "The sourcedId of the object. All objects MUST be identified\
\ by a Source Identifier. This is 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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
metadata:
$ref: "#/components/schemas/MetadataGeneral"
nativeHawaiianOrOtherPacificIslander:
type: string
description: Identification of whether or not the user is Native Hawaiian
or Other Pacific Islander ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
countryOfBirthCode:
type: string
description: "The country of birth code. The permitted vocabulary should\
\ be defined as part of the adoption and deployment process. See the Implementation\
\ Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
sex:
description: The sex of the individual. The permitted values are from an
enumerated list.
anyOf:
- type: string
enum:
- male
- female
- unspecified
- other
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.genderenumext.class
hispanicOrLatinoEthnicity:
type: string
description: Identification of whether or not the user is Hispanic or of
Latino ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
asian:
type: string
description: Identification of whether or not the user is of Asian ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
demographicRaceTwoOrMoreRaces:
type: string
description: Identification of whether or not the user has a demographic
of two or more race ethnicities.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
birthDate:
type: string
description: "The date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'."
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
americanIndianOrAlaskaNative:
type: string
description: Identification of whether or not the user is an American Indian
or Alaska Native ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
publicSchoolResidenceStatus:
type: string
description: "An indication of the location of a person's legal residence\
\ relative to (within or outside) the boundaries of the public school\
\ attended and its administrative unit. The permitted vocabulary should\
\ be defined as part of the adoption and deployment process. See the Implementation\
\ Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
cityOfBirth:
type: string
description: The name of the city in which the user was born.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
white:
type: string
description: Identification of whether or not the user is of white ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
blackOrAfricanAmerican:
type: string
description: Identification of whether or not the user is black or African
American ethnicity.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
stateOfBirthAbbreviation:
type: string
description: "The abbreviation for the name of the state (within the United\
\ States) or extra-state jurisdiction in which a person was born. The\
\ permitted vocabulary should be defined as part of the adoption and deployment\
\ process. See the Implementation Guide [OR-IMPL-12] for more details\
\ on how to define/use such a vocabulary."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
additionalProperties: false
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."
x-class-pid: org.1edtech.orrostering.v1p2.demographics.class
MetadataCourse:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions in the Course class.
x-class-pid: org.1edtech.orrostering.v1p2.metadatacourse.class
SingleClass:
required:
- class
type: object
properties:
class:
$ref: "#/components/schemas/Class"
additionalProperties: false
description: This is the container for a single class instance for a message
payload.
x-class-pid: org.1edtech.orrostering.v1p2.singleclass.class
SingleUser:
required:
- user
type: object
properties:
user:
$ref: "#/components/schemas/User"
additionalProperties: false
description: This is the container for a single user instance for a message
payload.
x-class-pid: org.1edtech.orrostering.v1p2.singleuser.class
DemographicsSet:
type: object
properties:
demographics:
minItems: 0
type: array
description: The collection of demographics instances. The order is not
significant. The corresponding query constraints may result in no instances
being returned.
items:
$ref: "#/components/schemas/Demographics"
x-srcprop-pid: org.1edtech.orrostering.v1p2.demographics.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.demographicsset.class
MetadataClass:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions in the Class class.
x-class-pid: org.1edtech.orrostering.v1p2.metadataclass.class
imsx_StatusInfo:
required:
- imsx_codeMajor
- imsx_severity
type: object
properties:
imsx_CodeMinor:
$ref: "#/components/schemas/imsx_CodeMinor"
imsx_codeMajor:
type: string
description: The code major value (from the corresponding enumerated vocabulary).
See Appendix B for further information on the interpretation of this set
of codes. The permitted vocabulary for the values for the CodeMajor field.
enum:
- success
- processing
- failure
- unsupported
x-srcprop-pid: org.1edtech.orrostering.v1p2.imsx_codemajorenum.class
imsx_description:
type: string
description: A human readable description supplied by the entity creating
the status code information.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.string.class
imsx_severity:
type: string
description: The severity value (from the corresponding enumerated vocabulary).
See Appendix B for further information on the interpretation of this set
of codes.
enum:
- status
- warning
- error
x-srcprop-pid: org.1edtech.orrostering.v1p2.imsx_severityenum.class
additionalProperties: false
description: This is the container for the status code and associated information
returned within the HTTP messages received from the Service Provider. For
the OneRoster Rostering service this object will only be returned to provide
information about a failed request i.e. it will NOT be in the payload for
a successful request. See Appendix B for further information on the interpretation
of the information contained within this class.
x-class-pid: org.1edtech.orrostering.v1p2.imsx_statusinfo.class
Enrollment:
required:
- sourcedId
- status
- dateLastModified
- user
- class
- school
- role
type: object
properties:
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
beginDate:
type: string
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'."
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
metadata:
$ref: "#/components/schemas/MetadataEnrollment"
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
role:
description: "The role of the user for this class in the school e.g teacher,\
\ student, etc. This is from an enumerated vocabulary."
anyOf:
- type: string
enum:
- administrator
- proctor
- student
- teacher
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.enrolroleenumext.class
school:
$ref: "#/components/schemas/OrgGUIDRef"
endDate:
type: string
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'."
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
user:
$ref: "#/components/schemas/UserGUIDRef"
class:
$ref: "#/components/schemas/ClassGUIDRef"
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
primary:
type: string
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.
enum:
- "true"
- "false"
x-srcprop-pid: org.1edtech.orrostering.v1p2.truefalseenum.class
additionalProperties: false
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."
x-class-pid: org.1edtech.orrostering.v1p2.enrollment.class
SingleCourse:
required:
- course
type: object
properties:
course:
$ref: "#/components/schemas/Course"
additionalProperties: false
description: This is the container for a single course instance for a message
payload.
x-class-pid: org.1edtech.orrostering.v1p2.singlecourse.class
AcademicSession:
required:
- sourcedId
- status
- dateLastModified
- title
- startDate
- endDate
- type
- schoolYear
type: object
properties:
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
parent:
$ref: "#/components/schemas/AcadSessionGUIDRef"
metadata:
$ref: "#/components/schemas/MetadataGeneral"
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601]\
\ and MUST contain the UTC timezone."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
endDate:
type: string
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'."
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
children:
minItems: 0
type: array
description: The set of links to the child AcademicSessions i.e. a set of
AcademicSession 'sourcedIds'.
items:
$ref: "#/components/schemas/AcadSessionGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.acadsessionguidref.class
schoolYear:
type: string
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'."
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
title:
type: string
description: The title/label for the academic session.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
type:
description: The type of academic session. This is based upon an enumerated
vocabulary.
anyOf:
- type: string
enum:
- gradingPeriod
- semester
- schoolYear
- term
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.sessiontypeenumext.class
startDate:
type: string
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'."
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
additionalProperties: false
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. "
x-class-pid: org.1edtech.orrostering.v1p2.academicsession.class
Course:
required:
- sourcedId
- status
- dateLastModified
- title
- courseCode
type: object
properties:
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
metadata:
$ref: "#/components/schemas/MetadataCourse"
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
org:
$ref: "#/components/schemas/OrgGUIDRef"
subjectCodes:
minItems: 0
type: array
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)."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
courseCode:
type: string
description: The assigned course code.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
subjects:
minItems: 0
type: array
description: 'The set of subjects addressed by this course. This is a set
of human readable strings. '
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
schoolYear:
$ref: "#/components/schemas/AcadSessionGUIDRef"
resources:
minItems: 0
type: array
description: The links to the associated resources if applicable i.e. the
resource 'sourcedIds'.
items:
$ref: "#/components/schemas/ResourceGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.resourceguidref.class
grades:
minItems: 0
type: array
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."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
title:
type: string
description: The title of the course.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
additionalProperties: false
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."
x-class-pid: org.1edtech.orrostering.v1p2.course.class
AcademicSessionSet:
type: object
properties:
academicSessions:
minItems: 0
type: array
description: The collection of academicSession instances. The order is not
significant. The corresponding query constraints may result in no instances
being returned.
items:
$ref: "#/components/schemas/AcademicSession"
x-srcprop-pid: org.1edtech.orrostering.v1p2.academicsession.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.academicsessionset.class
ResourceGUIDRef:
required:
- type
- href
- sourcedId
type: object
properties:
sourcedId:
type: string
description: The globally unique identifier of the object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
href:
type: string
description: The URI for the type of object being referenced.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
type:
type: string
description: The type of object being referenced i.e. a 'resource'.
enum:
- resource
x-srcprop-pid: org.1edtech.orrostering.v1p2.resourceguidreftypeenum.class
additionalProperties: false
description: This is the container for reference to a OneRoster 'Resource' object
that has an allocated sourcedId (GUID).
x-class-pid: org.1edtech.orrostering.v1p2.resourceguidref.class
Credential:
required:
- type
- username
type: object
properties:
password:
type: string
description: The password in this set of credentials. Care should be taken
to ensure that no unencrypted value is revealed.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.string.class
type:
type: string
description: The type of credentials for the profile. This should be indicative
of when this specific credential should be used.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.string.class
username:
type: string
description: The username.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
additionalProperties: true
description: The container for a single set of credentials for an account.
x-class-pid: org.1edtech.orrostering.v1p2.credential.class
Role:
required:
- roleType
- role
- org
type: object
properties:
beginDate:
type: string
description: 'The start date on which the role becomes active (inclusive). '
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
role:
description: 'The role of the user in the org. The permitted values are
from an enumerated list. '
anyOf:
- type: string
enum:
- aide
- counselor
- districtAdministrator
- guardian
- parent
- principal
- proctor
- relative
- siteAdministrator
- student
- systemAdministrator
- teacher
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.roleenumext.class
org:
$ref: "#/components/schemas/OrgGUIDRef"
endDate:
type: string
description: 'The end date on which the role becomes inactive (exclusive). '
format: date
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.date.class
roleType:
type: string
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."
enum:
- primary
- secondary
x-srcprop-pid: org.1edtech.orrostering.v1p2.roletypeenum.class
userProfile:
type: string
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.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.anyuri.class
additionalProperties: false
description: The container for one mapping between a role and an org for the
user.
x-class-pid: org.1edtech.orrostering.v1p2.role.class
imsx_CodeMinor:
required:
- imsx_codeMinorField
type: object
properties:
imsx_codeMinorField:
minItems: 1
type: array
description: Each reported code minor status code.
items:
$ref: "#/components/schemas/imsx_CodeMinorField"
x-srcprop-pid: org.1edtech.orrostering.v1p2.imsx_codeminorfield.class
additionalProperties: false
description: This is the container for the set of code minor status codes reported
in the responses from the Service Provider.
x-class-pid: org.1edtech.orrostering.v1p2.imsx_codeminor.class
ClassSet:
type: object
properties:
classes:
minItems: 0
type: array
description: The collection of class instances. The order is not significant.
The corresponding query constraints may result in no instances being returned.
items:
$ref: "#/components/schemas/Class"
x-srcprop-pid: org.1edtech.orrostering.v1p2.class.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.classset.class
UserId:
required:
- type
- identifier
type: object
properties:
identifier:
type: string
description: The user identifier.
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.identifier.class
type:
type: string
description: The type of identifier. This is no predefined vocabulary.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
additionalProperties: false
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."
x-class-pid: org.1edtech.orrostering.v1p2.userid.class
CourseSet:
type: object
properties:
courses:
minItems: 0
type: array
description: The collection of course instances. The order is not significant.
The corresponding query constraints may result in no instances being returned.
items:
$ref: "#/components/schemas/Course"
x-srcprop-pid: org.1edtech.orrostering.v1p2.course.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.courseset.class
SingleDemographics:
required:
- demographics
type: object
properties:
demographics:
$ref: "#/components/schemas/Demographics"
additionalProperties: false
description: This is the container for a single demographics instance for a
message payload.
x-class-pid: org.1edtech.orrostering.v1p2.singledemographics.class
Class:
required:
- sourcedId
- status
- dateLastModified
- title
- course
- school
- terms
type: object
properties:
sourcedId:
type: string
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."
x-srcprop-pid: org.1edtech.orrostering.v1p2.derived.sourcedid.class
classCode:
type: string
description: The class code.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
metadata:
$ref: "#/components/schemas/MetadataClass"
subjectCodes:
minItems: 0
type: array
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)."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
subjects:
minItems: 0
type: array
description: The set of subjects addressed by this class e.g. 'chemistry'.
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
resources:
minItems: 0
type: array
description: The links to the set of associated resources i.e. the Resource
'sourcedIds'.
items:
$ref: "#/components/schemas/ResourceGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.resourceguidref.class
grades:
minItems: 0
type: array
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."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
title:
type: string
description: The tile/label for the class.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
dateLastModified:
type: string
description: "All objects MUST be annotated with the dateTime upon which\
\ they were last modified. This enables requesters to query for just the\
\ latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ'\
\ [ISO 8601]."
format: date-time
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.datetime.class
school:
$ref: "#/components/schemas/OrgGUIDRef"
terms:
minItems: 1
type: array
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.
items:
$ref: "#/components/schemas/AcadSessionGUIDRef"
x-srcprop-pid: org.1edtech.orrostering.v1p2.acadsessionguidref.class
course:
$ref: "#/components/schemas/CourseGUIDRef"
periods:
minItems: 0
type: array
description: "The time slots in the day that the class will be given. Examples\
\ are 1 or a list of 1, 3, 5, etc."
items:
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
location:
type: string
description: The location for the class e.g. 'Room 19'.
x-srcprop-pid: org.1edtech.orrostering.v1p2.primitive.normalizedstring.class
classType:
description: The type of class. This is based upon an enumerated vocabulary.
anyOf:
- type: string
enum:
- homeroom
- scheduled
- pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
type: string
x-srcprop-pid: org.1edtech.orrostering.v1p2.classtypeenumext.class
status:
type: string
description: "All objects MUST BE either 'active' or 'tobedeleted'. Something\
\ which is flagged 'tobedeleted' is to be considered safe to delete. Systems\
\ can delete records that are flagged as such if they wish, but they are\
\ not under any compulsion to do so. In v1.1 the enumeration value of\
\ 'inactive' was removed and so for backwards compatibility all such marked\
\ objects should be interpreted as 'tobedeleted'."
enum:
- active
- tobedeleted
x-srcprop-pid: org.1edtech.orrostering.v1p2.basestatusenum.class
additionalProperties: false
description: "A class is an instance of a course, onto which students and teachers\
\ are enrolled. A class is typically held within a term."
x-class-pid: org.1edtech.orrostering.v1p2.class.class
MetadataUser:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions in the User class.
x-class-pid: org.1edtech.orrostering.v1p2.metadatauser.class
SingleEnrollment:
required:
- enrollment
type: object
properties:
enrollment:
$ref: "#/components/schemas/Enrollment"
additionalProperties: false
description: This is the container for a single enrollment instance for a message
payload.
x-class-pid: org.1edtech.orrostering.v1p2.singleenrollment.class
OrgSet:
type: object
properties:
orgs:
minItems: 0
type: array
description: The collection of org instances. The order is not significant.
The corresponding query constraints may result in no instances being returned.
items:
$ref: "#/components/schemas/Org"
x-srcprop-pid: org.1edtech.orrostering.v1p2.org.class
additionalProperties: false
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.
x-class-pid: org.1edtech.orrostering.v1p2.orgset.class
MetadataEnrollment:
type: object
properties: {}
additionalProperties: true
description: The container for the proprietary extensions in the Enrollment
class.
x-class-pid: org.1edtech.orrostering.v1p2.metadataenrollment.class
parameters:
filter:
name: filter
in: query
description: "The filtering rules to be applied when identifying the records\
\ to be supplied in the response message. The sort order should follow the\
\ [UNICODE, 16] standard."
required: false
allowEmptyValue: false
style: form
schema:
type: string
offset:
name: offset
in: query
description: The number of the first record to be supplied in the segmented
response message.
required: false
allowEmptyValue: false
style: form
schema:
minimum: 0
type: integer
format: int32
limit:
name: limit
in: query
description: To define the download segmentation value i.e. the maximum number
of records to be contained in the response.
required: false
allowEmptyValue: false
style: form
schema:
minimum: 1
type: integer
format: int32
orderBy:
name: orderBy
in: query
description: "The form of ordering for response to the sorted request i.e. ascending\
\ (asc) or descending (desc). The sort order should follow the [UNICODE, 16]\
\ standard."
required: false
allowEmptyValue: false
style: form
schema:
type: string
enum:
- asc
- desc
sort:
name: sort
in: query
description: "Identifies the sort criteria to be used for the records in the\
\ response message. Use with the orderBy parameter. The sort order should\
\ follow the [UNICODE, 16] standard."
required: false
allowEmptyValue: false
style: form
schema:
type: string
fields:
name: fields
in: query
description: To identify the range of fields that should be supplied in the
response message.
required: false
allowEmptyValue: false
style: form
schema:
type: string
securitySchemes:
OAuth2CC:
type: oauth2
description: OAuth 2 Client Credentials (as per the requirements in the IMS
Security Framework) is to be used.
flows:
clientCredentials:
tokenUrl: https://www.imsglobal.org
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.
JSON Schema Listings
This Section is NORMATIVE.
JSON Schemas for Payload Validation
AcademicSessionSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "AcademicSessionSet",
"title" : "JSON Schema for the AcademicSessionSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/AcademicSession"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"AcademicSession" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The title/label for the academic session.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"type" : {
"description" : "The type of academic session. This is based upon an enumerated vocabulary.",
"$comment" : "Origin: SessionTypeEnumExt (Union); The data-type for the type of academic session. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "gradingPeriod", "semester", "schoolYear", "term" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"parent" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
},
"children" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
}
},
"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'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"metadata" : {
"$ref" : "#/$defs/MetadataGeneral"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "startDate", "endDate", "type", "schoolYear" ],
"additionalProperties" : false
},
"MetadataGeneral" : {
"description" : "The container for the proprietary extensions.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
ClassSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "ClassSet",
"title" : "JSON Schema for the ClassSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Class"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"Class" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The tile/label for the class.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"classCode" : {
"description" : "The class code.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"classType" : {
"description" : "The type of class. This is based upon an enumerated vocabulary.",
"$comment" : "Origin: ClassTypeEnumExt (Union); The data-type for the 'classType' characteristic for a class. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "homeroom", "scheduled" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"location" : {
"description" : "The location for the class e.g. 'Room 19'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"subjects" : {
"type" : "array",
"items" : {
"description" : "The set of subjects addressed by this class e.g. 'chemistry'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"course" : {
"$ref" : "#/$defs/CourseGUIDRef"
},
"school" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"terms" : {
"type" : "array",
"minItems" : 1,
"items" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
}
},
"subjectCodes" : {
"type" : "array",
"items" : {
"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).",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"periods" : {
"type" : "array",
"items" : {
"description" : "The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataClass"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "course", "school", "terms" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"CourseGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'course'.",
"$comment" : "Origin: CourseGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Course'.",
"type" : "string",
"enum" : [ "course" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataClass" : {
"description" : "The container for the proprietary extensions in the Class class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
CourseSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "CourseSet",
"title" : "JSON Schema for the CourseSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Course"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"Course" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The title of the course.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"schoolYear" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
},
"courseCode" : {
"description" : "The assigned course code.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"subjects" : {
"type" : "array",
"items" : {
"description" : "The set of subjects addressed by this course. This is a set of human readable strings. ",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"org" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"subjectCodes" : {
"type" : "array",
"items" : {
"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).",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataCourse"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "courseCode" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataCourse" : {
"description" : "The container for the proprietary extensions in the Course class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
DemographicsSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "DemographicsSet",
"title" : "JSON Schema for the DemographicsSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Demographics"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"Demographics" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"birthDate" : {
"description" : "The date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"sex" : {
"description" : "The sex of the individual. The permitted values are from an enumerated list.",
"$comment" : "Origin: GenderEnumExt (Union); The data-type for the 'gender' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "male", "female", "unspecified", "other" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"americanIndianOrAlaskaNative" : {
"description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"asian" : {
"description" : "Identification of whether or not the user is of Asian ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"blackOrAfricanAmerican" : {
"description" : "Identification of whether or not the user is black or African American ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"nativeHawaiianOrOtherPacificIslander" : {
"description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"white" : {
"description" : "Identification of whether or not the user is of white ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"demographicRaceTwoOrMoreRaces" : {
"description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"hispanicOrLatinoEthnicity" : {
"description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"countryOfBirthCode" : {
"description" : "The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"stateOfBirthAbbreviation" : {
"description" : "The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"cityOfBirth" : {
"description" : "The name of the city in which the user was born.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"publicSchoolResidenceStatus" : {
"description" : "An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"metadata" : {
"$ref" : "#/$defs/MetadataGeneral"
}
},
"required" : [ "sourcedId", "status", "dateLastModified" ],
"additionalProperties" : false
},
"MetadataGeneral" : {
"description" : "The container for the proprietary extensions.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
EnrollmentSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "EnrollmentSet",
"title" : "JSON Schema for the EnrollmentSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Enrollment"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"Enrollment" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"user" : {
"$ref" : "#/$defs/UserGUIDRef"
},
"class" : {
"$ref" : "#/$defs/ClassGUIDRef"
},
"school" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"role" : {
"description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
"$comment" : "Origin: EnrolRoleEnumExt (Union); The data-type for the 'role' characteristic for an enrollment. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "administrator", "proctor", "student", "teacher" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-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.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"metadata" : {
"$ref" : "#/$defs/MetadataEnrollment"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "user", "class", "school", "role" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"ClassGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'class'.",
"$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Class'.",
"type" : "string",
"enum" : [ "class" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataEnrollment" : {
"description" : "The container for the proprietary extensions in the Enrollment class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"UserGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'user'.",
"$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'User.",
"type" : "string",
"enum" : [ "user" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
NonNegativeInteger
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "NonNegativeInteger",
"title" : "JSON Schema for the NonNegativeInteger class.",
"description" : "No description supplied.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : false
}
OrderByEnum
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "OrderByEnum",
"title" : "JSON Schema for the OrderByEnum class.",
"description" : "No description supplied.",
"type" : "object",
"properties" : {
"asc" : {
"description" : "No description supplied.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"desc" : {
"description" : "No description supplied.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
}
},
"required" : [ "asc", "desc" ],
"additionalProperties" : false
}
OrgSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "OrgSet",
"title" : "JSON Schema for the OrgSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Org"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"Org" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"name" : {
"description" : "The name of the organization.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"type" : {
"description" : "The type of organization. This uses a predefined vocabulary.",
"$comment" : "Origin: OrgTypeEnumExt (Union); The data-type for the 'type' characteristic for an org. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "department", "district", "local", "national", "school", "state" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"identifier" : {
"description" : "Human readable identifier for this org e.g. NCES ID.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
},
"parent" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"children" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/OrgGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataOrg"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "name", "type", "identifier" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataOrg" : {
"description" : "The container for the proprietary extensions for the Org class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
PositiveInteger
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "PositiveInteger",
"title" : "JSON Schema for the PositiveInteger class.",
"description" : "No description supplied.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : false
}
SingleAcademicSession
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleAcademicSession",
"title" : "JSON Schema for the SingleAcademicSession class.",
"description" : "This is the container for a single academicSession instance for a message payload.",
"type" : "object",
"properties" : {
"academicSession" : {
"$ref" : "#/$defs/AcademicSession"
}
},
"required" : [ "academicSession" ],
"additionalProperties" : false,
"$defs" : {
"AcademicSession" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The title/label for the academic session.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"type" : {
"description" : "The type of academic session. This is based upon an enumerated vocabulary.",
"$comment" : "Origin: SessionTypeEnumExt (Union); The data-type for the type of academic session. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "gradingPeriod", "semester", "schoolYear", "term" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"parent" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
},
"children" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
}
},
"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'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"metadata" : {
"$ref" : "#/$defs/MetadataGeneral"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "startDate", "endDate", "type", "schoolYear" ],
"additionalProperties" : false
},
"MetadataGeneral" : {
"description" : "The container for the proprietary extensions.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
SingleClass
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleClass",
"title" : "JSON Schema for the SingleClass class.",
"description" : "This is the container for a single class instance for a message payload.",
"type" : "object",
"properties" : {
"class" : {
"$ref" : "#/$defs/Class"
}
},
"required" : [ "class" ],
"additionalProperties" : false,
"$defs" : {
"Class" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The tile/label for the class.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"classCode" : {
"description" : "The class code.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"classType" : {
"description" : "The type of class. This is based upon an enumerated vocabulary.",
"$comment" : "Origin: ClassTypeEnumExt (Union); The data-type for the 'classType' characteristic for a class. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "homeroom", "scheduled" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"location" : {
"description" : "The location for the class e.g. 'Room 19'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"subjects" : {
"type" : "array",
"items" : {
"description" : "The set of subjects addressed by this class e.g. 'chemistry'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"course" : {
"$ref" : "#/$defs/CourseGUIDRef"
},
"school" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"terms" : {
"type" : "array",
"minItems" : 1,
"items" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
}
},
"subjectCodes" : {
"type" : "array",
"items" : {
"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).",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"periods" : {
"type" : "array",
"items" : {
"description" : "The time slots in the day that the class will be given. Examples are 1 or a list of 1, 3, 5, etc.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataClass"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "course", "school", "terms" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"CourseGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'course'.",
"$comment" : "Origin: CourseGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Course'.",
"type" : "string",
"enum" : [ "course" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataClass" : {
"description" : "The container for the proprietary extensions in the Class class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
SingleCourse
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleCourse",
"title" : "JSON Schema for the SingleCourse class.",
"description" : "This is the container for a single course instance for a message payload.",
"type" : "object",
"properties" : {
"course" : {
"$ref" : "#/$defs/Course"
}
},
"required" : [ "course" ],
"additionalProperties" : false,
"$defs" : {
"Course" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"title" : {
"description" : "The title of the course.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"schoolYear" : {
"$ref" : "#/$defs/AcadSessionGUIDRef"
},
"courseCode" : {
"description" : "The assigned course code.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"subjects" : {
"type" : "array",
"items" : {
"description" : "The set of subjects addressed by this course. This is a set of human readable strings. ",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"org" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"subjectCodes" : {
"type" : "array",
"items" : {
"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).",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataCourse"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "title", "courseCode" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataCourse" : {
"description" : "The container for the proprietary extensions in the Course class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"AcadSessionGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'academicSession'.",
"$comment" : "Origin: AcadSessionGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Academic Session'.",
"type" : "string",
"enum" : [ "academicSession" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
SingleDemographics
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleDemographics",
"title" : "JSON Schema for the SingleDemographics class.",
"description" : "This is the container for a single demographics instance for a message payload.",
"type" : "object",
"properties" : {
"demographics" : {
"$ref" : "#/$defs/Demographics"
}
},
"required" : [ "demographics" ],
"additionalProperties" : false,
"$defs" : {
"Demographics" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"birthDate" : {
"description" : "The date of birth. The format is [ISO 8601] of 'YYYY-MM-DD'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"sex" : {
"description" : "The sex of the individual. The permitted values are from an enumerated list.",
"$comment" : "Origin: GenderEnumExt (Union); The data-type for the 'gender' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "male", "female", "unspecified", "other" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"americanIndianOrAlaskaNative" : {
"description" : "Identification of whether or not the user is an American Indian or Alaska Native ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"asian" : {
"description" : "Identification of whether or not the user is of Asian ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"blackOrAfricanAmerican" : {
"description" : "Identification of whether or not the user is black or African American ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"nativeHawaiianOrOtherPacificIslander" : {
"description" : "Identification of whether or not the user is Native Hawaiian or Other Pacific Islander ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"white" : {
"description" : "Identification of whether or not the user is of white ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"demographicRaceTwoOrMoreRaces" : {
"description" : "Identification of whether or not the user has a demographic of two or more race ethnicities.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"hispanicOrLatinoEthnicity" : {
"description" : "Identification of whether or not the user is Hispanic or of Latino ethnicity.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"countryOfBirthCode" : {
"description" : "The country of birth code. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"stateOfBirthAbbreviation" : {
"description" : "The abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a person was born. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"cityOfBirth" : {
"description" : "The name of the city in which the user was born.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"publicSchoolResidenceStatus" : {
"description" : "An indication of the location of a person's legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit. The permitted vocabulary should be defined as part of the adoption and deployment process. See the Implementation Guide [OR-IMPL-12] for more details on how to define/use such a vocabulary.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"metadata" : {
"$ref" : "#/$defs/MetadataGeneral"
}
},
"required" : [ "sourcedId", "status", "dateLastModified" ],
"additionalProperties" : false
},
"MetadataGeneral" : {
"description" : "The container for the proprietary extensions.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
SingleEnrollment
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleEnrollment",
"title" : "JSON Schema for the SingleEnrollment class.",
"description" : "This is the container for a single enrollment instance for a message payload.",
"type" : "object",
"properties" : {
"enrollment" : {
"$ref" : "#/$defs/Enrollment"
}
},
"required" : [ "enrollment" ],
"additionalProperties" : false,
"$defs" : {
"Enrollment" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"user" : {
"$ref" : "#/$defs/UserGUIDRef"
},
"class" : {
"$ref" : "#/$defs/ClassGUIDRef"
},
"school" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"role" : {
"description" : "The role of the user for this class in the school e.g teacher, student, etc. This is from an enumerated vocabulary.",
"$comment" : "Origin: EnrolRoleEnumExt (Union); The data-type for the 'role' characteristic for an enrollment. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "administrator", "proctor", "student", "teacher" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-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.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"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'.",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"metadata" : {
"$ref" : "#/$defs/MetadataEnrollment"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "user", "class", "school", "role" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"ClassGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'class'.",
"$comment" : "Origin: ClassGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Class'.",
"type" : "string",
"enum" : [ "class" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataEnrollment" : {
"description" : "The container for the proprietary extensions in the Enrollment class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"UserGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'user'.",
"$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'User.",
"type" : "string",
"enum" : [ "user" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
SingleOrg
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleOrg",
"title" : "JSON Schema for the SingleOrg class.",
"description" : "This is the container for a single org instance for a message payload.",
"type" : "object",
"properties" : {
"org" : {
"$ref" : "#/$defs/Org"
}
},
"required" : [ "org" ],
"additionalProperties" : false,
"$defs" : {
"Org" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"type" : "string",
"format" : "date-time"
},
"name" : {
"description" : "The name of the organization.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"type" : {
"description" : "The type of organization. This uses a predefined vocabulary.",
"$comment" : "Origin: OrgTypeEnumExt (Union); The data-type for the 'type' characteristic for an org. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "department", "district", "local", "national", "school", "state" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"identifier" : {
"description" : "Human readable identifier for this org e.g. NCES ID.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
},
"parent" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"children" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/OrgGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataOrg"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "name", "type", "identifier" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataOrg" : {
"description" : "The container for the proprietary extensions for the Org class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
}
}
}
SingleUser
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SingleUser",
"title" : "JSON Schema for the SingleUser class.",
"description" : "This is the container for a single user instance for a message payload.",
"type" : "object",
"properties" : {
"user" : {
"$ref" : "#/$defs/User"
}
},
"required" : [ "user" ],
"additionalProperties" : false,
"$defs" : {
"User" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"userIds" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserId"
}
},
"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.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"givenName" : {
"description" : "The given name. Also, known as the first name.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"familyName" : {
"description" : "The family name. Also, known as the last name.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredFirstName" : {
"description" : "The user's preferred first name. This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredMiddleName" : {
"description" : "The user's preferred middle name(s). This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredLastName" : {
"description" : "The user's preferred last name. This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"roles" : {
"type" : "array",
"minItems" : 1,
"items" : {
"$ref" : "#/$defs/Role"
}
},
"userProfiles" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserProfile"
}
},
"primaryOrg" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"identifier" : {
"description" : "An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
},
"email" : {
"description" : "The email address for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"sms" : {
"description" : "The SMS number for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"phone" : {
"description" : "The phone number for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"agents" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserGUIDRef"
}
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"password" : {
"description" : "A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataUser"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "enabledUser", "givenName", "familyName", "roles" ],
"additionalProperties" : false
},
"UserProfile" : {
"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" : "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.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"vendorId" : {
"description" : "The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"credentials" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Credential"
}
}
},
"required" : [ "profileId", "profileType", "vendorId" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataUser" : {
"description" : "The container for the proprietary extensions in the User class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"Role" : {
"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.",
"$comment" : "Origin: RoleTypeEnum (Enumeration); The type of role for the role-org mappings. Each mapping must have a role type of which only one must have a roleType of 'primary' and the others must be 'secondary'. ",
"type" : "string",
"enum" : [ "primary", "secondary" ]
},
"role" : {
"description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
"$comment" : "Origin: RoleEnumExt (Union); The data-type for the 'role' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "aide", "counselor", "districtAdministrator", "guardian", "parent", "principal", "proctor", "relative", "siteAdministrator", "student", "systemAdministrator", "teacher" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"org" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"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.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"beginDate" : {
"description" : "The start date on which the role becomes active (inclusive). ",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"endDate" : {
"description" : "The end date on which the role becomes inactive (exclusive). ",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
}
},
"required" : [ "roleType", "role", "org" ],
"additionalProperties" : false
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"UserId" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"identifier" : {
"description" : "The user identifier.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
}
},
"required" : [ "type", "identifier" ],
"additionalProperties" : false
},
"Credential" : {
"description" : "The container for a single set of credentials for an account.",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"username" : {
"description" : "The username.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"password" : {
"description" : "The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
}
},
"required" : [ "type", "username" ],
"additionalProperties" : true
},
"UserGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'user'.",
"$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'User.",
"type" : "string",
"enum" : [ "user" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
SourcedId
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "SourcedId",
"title" : "JSON Schema for the SourcedId class.",
"description" : "The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : false
}
String
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "String",
"title" : "JSON Schema for the String class.",
"description" : "No description supplied.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : false
}
UserSet
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "UserSet",
"title" : "JSON Schema for the UserSet class.",
"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" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/User"
}
}
},
"required" : [ ],
"additionalProperties" : false,
"$defs" : {
"User" : {
"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" : "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.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
},
"status" : {
"description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
"$comment" : "Origin: BaseStatusEnum (Enumeration); The set of permitted values for the type of status of a record. ",
"type" : "string",
"enum" : [ "active", "tobedeleted" ]
},
"dateLastModified" : {
"description" : "All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in the format 'YYYY-MM-DDThh:mm:ss.sssZ' [ISO 8601].",
"$comment" : "Origin: DateTime (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"userIds" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserId"
}
},
"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.",
"$comment" : "Origin: TrueFalseEnum (Enumeration); This enumeration is used to limit the permitted tokens for a Boolean data-type to values of 'true' or 'false' ONLY.",
"type" : "string",
"enum" : [ "true", "false" ]
},
"givenName" : {
"description" : "The given name. Also, known as the first name.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"familyName" : {
"description" : "The family name. Also, known as the last name.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredFirstName" : {
"description" : "The user's preferred first name. This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredMiddleName" : {
"description" : "The user's preferred middle name(s). This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"preferredLastName" : {
"description" : "The user's preferred last name. This attribute was added in version 1.2.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"roles" : {
"type" : "array",
"minItems" : 1,
"items" : {
"$ref" : "#/$defs/Role"
}
},
"userProfiles" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserProfile"
}
},
"primaryOrg" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"identifier" : {
"description" : "An identifier for the user. NOTE - This characteristic is kept for backwards compatibility with OneRoster 1.1/1.0. The 'userIds' characteristic SHOULD be used instead.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
},
"email" : {
"description" : "The email address for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"sms" : {
"description" : "The SMS number for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"phone" : {
"description" : "The phone number for the user.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"agents" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/UserGUIDRef"
}
},
"grades" : {
"type" : "array",
"items" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
}
},
"password" : {
"description" : "A top-level password for the user. Care should be taken when using this field and the password SHOULD be encrypted.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/ResourceGUIDRef"
}
},
"metadata" : {
"$ref" : "#/$defs/MetadataUser"
}
},
"required" : [ "sourcedId", "status", "dateLastModified", "enabledUser", "givenName", "familyName", "roles" ],
"additionalProperties" : false
},
"UserProfile" : {
"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" : "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.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"vendorId" : {
"description" : "The unique identifier for the vendor of the system, tool, app, etc. which requires the use of this profile.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"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.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"credentials" : {
"type" : "array",
"items" : {
"$ref" : "#/$defs/Credential"
}
}
},
"required" : [ "profileId", "profileType", "vendorId" ],
"additionalProperties" : false
},
"OrgGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. an 'org'.",
"$comment" : "Origin: OrgGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to an 'Org'.",
"type" : "string",
"enum" : [ "org" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"MetadataUser" : {
"description" : "The container for the proprietary extensions in the User class.",
"type" : "object",
"properties" : { },
"required" : [ ],
"additionalProperties" : true
},
"Role" : {
"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.",
"$comment" : "Origin: RoleTypeEnum (Enumeration); The type of role for the role-org mappings. Each mapping must have a role type of which only one must have a roleType of 'primary' and the others must be 'secondary'. ",
"type" : "string",
"enum" : [ "primary", "secondary" ]
},
"role" : {
"description" : "The role of the user in the org. The permitted values are from an enumerated list. ",
"$comment" : "Origin: RoleEnumExt (Union); The data-type for the 'role' characteristic for a user. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "aide", "counselor", "districtAdministrator", "guardian", "parent", "principal", "proctor", "relative", "siteAdministrator", "student", "systemAdministrator", "teacher" ]
}, {
"type" : "string",
"pattern" : "(ext:)[a-z|A-Z|0-9|.|-|_]+"
} ]
},
"org" : {
"$ref" : "#/$defs/OrgGUIDRef"
},
"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.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"beginDate" : {
"description" : "The start date on which the role becomes active (inclusive). ",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
},
"endDate" : {
"description" : "The end date on which the role becomes inactive (exclusive). ",
"$comment" : "Origin: Date (PrimitiveType)",
"type" : "string",
"format" : "date"
}
},
"required" : [ "roleType", "role", "org" ],
"additionalProperties" : false
},
"ResourceGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'Resource' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'resource'.",
"$comment" : "Origin: ResourceGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'Resource'.",
"type" : "string",
"enum" : [ "resource" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
},
"UserId" : {
"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.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"identifier" : {
"description" : "The user identifier.",
"$comment" : "Origin: Identifier (DerivedType); The data-type for a local unique identifier. The scope of the uniqueness of this identifier is determined by the organization assigning it.",
"type" : "string"
}
},
"required" : [ "type", "identifier" ],
"additionalProperties" : false
},
"Credential" : {
"description" : "The container for a single set of credentials for an account.",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of credentials for the profile. This should be indicative of when this specific credential should be used.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"username" : {
"description" : "The username.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"password" : {
"description" : "The password in this set of credentials. Care should be taken to ensure that no unencrypted value is revealed.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
}
},
"required" : [ "type", "username" ],
"additionalProperties" : true
},
"UserGUIDRef" : {
"description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
"type" : "object",
"properties" : {
"type" : {
"description" : "The type of object being referenced i.e. a 'user'.",
"$comment" : "Origin: UserGUIDRefTypeEnum (Enumeration); This is the fixed enumeration for a GUIDRef that points to a 'User.",
"type" : "string",
"enum" : [ "user" ]
},
"href" : {
"description" : "The URI for the type of object being referenced.",
"$comment" : "Origin: AnyURI (PrimitiveType)",
"type" : "string"
},
"sourcedId" : {
"description" : "The globally unique identifier of the object being referenced.",
"$comment" : "Origin: SourcedId (DerivedType); The data-type for establishing a Unique Identifier. There is no predefined structure for the identifier and the scope MUST NOT assume globally uniqueness.",
"type" : "string"
}
},
"required" : [ "type", "href", "sourcedId" ],
"additionalProperties" : false
}
}
}
imsx_StatusInfo
{
"$schema" : "https://json-schema.org/draft/2019-09/schema#",
"$id" : "imsx_StatusInfo",
"title" : "JSON Schema for the imsx_StatusInfo class.",
"description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.",
"type" : "object",
"properties" : {
"imsx_codeMajor" : {
"description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
"$comment" : "Origin: imsx_CodeMajorEnum (Enumeration); The permitted vocabulary for the values for the CodeMajor field.",
"type" : "string",
"enum" : [ "success", "processing", "failure", "unsupported" ]
},
"imsx_severity" : {
"description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
"$comment" : "Origin: imsx_SeverityEnum (Enumeration); The permitted vocabulary for the values for the Severity field.",
"type" : "string",
"enum" : [ "status", "warning", "error" ]
},
"imsx_description" : {
"description" : "A human readable description supplied by the entity creating the status code information.",
"$comment" : "Origin: String (PrimitiveType)",
"type" : "string"
},
"imsx_CodeMinor" : {
"$ref" : "#/$defs/imsx_CodeMinor"
}
},
"required" : [ "imsx_codeMajor", "imsx_severity" ],
"additionalProperties" : false,
"$defs" : {
"imsx_CodeMinor" : {
"description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
"type" : "object",
"properties" : {
"imsx_codeMinorField" : {
"type" : "array",
"minItems" : 1,
"items" : {
"$ref" : "#/$defs/imsx_CodeMinorField"
}
}
},
"required" : [ "imsx_codeMinorField" ],
"additionalProperties" : false
},
"imsx_CodeMinorField" : {
"description" : "This is the container for a single code minor status code.",
"type" : "object",
"properties" : {
"imsx_codeMinorFieldName" : {
"description" : "This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
"$comment" : "Origin: NormalizedString (PrimitiveType)",
"type" : "string"
},
"imsx_codeMinorFieldValue" : {
"description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
"$comment" : "Origin: imsx_CodeMinorValueEnum (Enumeration); The permitted vocabulary for the values for the CodeMinorValue field.",
"type" : "string",
"enum" : [ "fullsuccess", "invalid_filter_field", "invalid_selection_field", "invaliddata", "unauthorisedrequest", "forbidden", "server_busy", "unknownobject", "internal_server_error" ]
}
},
"required" : [ "imsx_codeMinorFieldName", "imsx_codeMinorFieldValue" ],
"additionalProperties" : false
}
}
}
IP Disclosures
The following participating organizations have made explicit license commitments to this specification:
| Organization Name | Date election made | Necessary claims | Type |
|---|---|---|---|
| D2L Corporation | 2022-07-21 | No | RF RAND (Required & Optional Elements) |
| Gwinnett County Public Schools | 2022-07-22 | No | RF RAND (Required & Optional Elements) |
| Infinite Campus Inc | 2022-07-25 | No | RF RAND (Required & Optional Elements) |
| Microsoft Corporation | 2022-08-08 | No | RF RAND (Required & Optional Elements) |
| SameGoal Inc | 2022-07-21 | No | RF RAND (Required & Optional Elements) |
| Anthology Inc. | 2022-08-10 | No | RF RAND (Required & Optional Elements) |
List of Contributors
The following individuals contributed to the development of this document:
| Name | Affiliation | Role |
|---|---|---|
| Colin Smythe | 1EdTech (UK) | |
| Matt Richards | Infinite Campus (USA) | |
| Phil Nicholls | 1EdTech (UK) | |
| Upendra Penegalapati | Pearson (USA) | |
| Mark Walls | Gwinnett County Schools (USA) | |
| Tom Clark | Pearson (USA) | |
| Eric Adams | Instructure (USA) | |
| Tom Ingram | Escambia County School District (USA) | |
| Richard Heim | LearningMate (USA) | |
| Linda Feng | Unicon (USA) | |
| Barry Brahier | Infinite Campus (USA) | |
| Viktor Haag | Desire2Learn (Canada) | |
| Oxana Jurosevic | Instructure (USA) | |
| Wendy Riedy | Microsoft (USA) | |
| Kurt Rompot | Pearson (USA) | |
| David Mayes | Gwinnett County Schools (USA) | |
| Patrick Porter | Houston ISD (USA) | |
| Joshua McGhee | 1EdTech (USA) | |
| James Perreault | FLVS (USA) | |
| Padraig O'hiceadha | HMH (UK) | |
| Konrad Stimeling | K12 Inc (USA) | |
| Matt Vella | Schoology (USA) | |
| TJ Vering | Microsoft (USA) | |
| Gabrielle Sanderson | Illuminate Education (USA) | |
| Jong Kim | Pearson (USA) | |
| Andrew Kuritzky | Edmentum (USA) | |
| Aditya Subramaniam | Schoology (USA) |
Changelog
Changelog entries are not listed yet.
Revision History
| Version | Doc Version | Date | Comments |
|---|---|---|---|
| Final | 2015-07-01 | First release of the OneRoster Service specification. | |
| Final | 2016-11-01 | This second release includes new operations to create and delete single objects, support for the exchange of Result, LineItem, Category and Resource objects. | |
| Final | 2022-09-19 | This is the first release of the OneRoster 1.2: Rostering Service as a standalone document. A number of data models changes have been made and the use of OAuth 2 has been made mandatory. No changes have been made to the set of service operations. | |
| Final | 2023-06-01 | This is an editorial revision of the specification. The changes from document version 1.0 are: TBD. |
Related resources
Data Model
Service Model
The service model is available as an OpenAPI document at the following URL:
- One Roster Rostering Service 1.2 OpenAPI 3.0 definition file (JSON)
- One Roster Rostering Service 1.2 OpenAPI 3.0 definition file (YAML)
Skill
The skill model is available as a JSON file at the following URL:
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ip.
Copyright © 1EdTech Consortium, Inc. All Rights Reserved.
Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/standards/specification-license.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Trademark information: https://www.1edtech.org/about/legal/trademarks