# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (IMS Global)
# Date:           2021-12-01
# Version:        d2
# Status:         Draft
# Description:    The EDU-API Education Service definition. This service supports the management of AcademicSessions, CollectionTemplates, CourseTemplates, ComponentTemplates, EducationTemplates, CollectionOfferings, CourseOfferings, ComponentOfferings, EducationOfferings, Orgs and the enrollment on each and/or all of the Offering-based structures. The service has a different set of endpoints for synchronous and asynchronous delivery.
# 
# History:        Original version 1.0.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS Education Service Version 1.0
#                 found at http://www.imsglobal.org/[xxx] and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/[binding document].
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 IMS takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on IMS procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2021. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/license.html.
# 
#                 Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
# 
#                 The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
#                 NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
#                 ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2021-12-15
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2021  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: Education Service OpenAPI (YAML) Definition
    description: The EDU-API Education Service definition. This service supports the management of AcademicSessions, CollectionTemplates, CourseTemplates, ComponentTemplates, EducationTemplates, CollectionOfferings, CourseOfferings, ComponentOfferings, EducationOfferings, Orgs and the enrollment on each and/or all of the Offering-based structures. The service has a different set of endpoints for synchronous and asynchronous delivery.
    termsOfService: https://www.imsglobal.org/license.html
    contact: 
        name: Lisa Mattson (COO), IMS Global
        url: http://www.imsglobal.org
        email: lmattson@imsglobal.org
    license: 
        name: IMS Global
        url: https://www.imsglobal.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the IMS url is given as a default value).
              default: www.imsglobal.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/eduapi/educationservice/v1p0
              default: /ims/eduapi/educationservice/v1p0

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AcademicSessionManagement-Sync
      description: |
        This set of endpoints enables the management of academic sessions using a synchronous service approach. Academic session is used to define a period of time for which a learning active or process is active. Examples of academic sesssion are Semester, Term, School Year, Grading Period, etc.
    - name: CollectionOfferingsManagement-Sync
      description: |
        This set of endpoints enables the management of collection offerings using a synchronous service approach. A CollectionOffering is a set course offerings or other learning units, used to group them into a coherent whole for enrollment, administrative, or other purposes.
    - name: CollectionTemplatesManagement-Sync
      description: |
        This set of endpoints enables the management of collection templates using a synchronous service approach. A CollectionTemplate is a set course templates or other learning units, used to group them into a coherent whole for enrollment, administrative, or other purposes.
    - name: ComponentOfferingsManagement-Sync
      description: |
        This set of endpoints enables the management of component offerings using a synchronous service approach. A ComponentOffering is a subsection of a CourseOffering or Class. It may be a lesson unit within a Class or it may be a separately enrolled unit with a Course. For example, Biology 101 may consist of a Lecture component and a Lab component.
    - name: ComponentTemplatesManagement-Sync
      description: |
        This set of endpoints enables the management of component templates using a synchronous service approach. A ComponentTemplate is a subsection of a CourseTemplate or Class. It may be a lesson unit within a Class or it may be a separately enrolled unit with a Course. For example, Biology 101 may consist of a Lecture component and a Lab component.
    - name: CourseOfferingsManagement-Sync
      description: |
        This is the set of endpoints that enables the management of course offerings using a synchronous service approach.  A CourseOffering is a time independent description of a learning experience, such that it may appear in a catalog.  It should have attributes to allow learners to make decisions about what they will learn: i.e. description, pre-requisites, etc.
    - name: CourseTemplatesManagement-Sync
      description: |
        This is the set of endpoints that enables the management of course templates using a synchronous service approach.  A CourseTemplate is a time independent description of a learning experience, such that it may appear in a catalog.  It should have attributes to allow learners to make decisions about what they will learn: i.e. description, pre-requisites, etc.
    - name: EducationOfferingsManagement-Sync
      description: |
        This set of endpoints enables the management of ALL education offerings using a synchronous service approach. An EducationOffering is the underlying data structure used to represent an educational offering construct e.g. ClassOffering, CourseOffering, CollectionOffering, etc. This data model MUST be used when the CollectionOffering, CourseTemplateOffering and ComponenOffering data models are not appropriate i.e. the object is not a CollectionOffering, CourseOffering or ComponentOffering. This operation/endpoint MAY be used as an alternative approach to obtaining the same data available through the data-type specific endpoints. 
    - name: EducationTemplatesManagement-Sync
      description: |
        This set of endpoints enables the management of ALL education templates using a synchronous service approach. An EducationTemplate is the underlying data structure used to represent an educational template construct e.g. ClassTemplate, CourseTemplate, CollectionTemplate, etc. This data model MUST be used when the CollectionTemplate, CourseTemplateTemplate and ComponenTemplate data models are not appropriate i.e. the object is not a CollectionTemplate, CourseTemplate or ComponentTemplate. This operation/endpoint MAY be used as an alternative approach to obtaining the same data available through the data-type specific endpoints. 
    - name: EnrollmentManagement-Sync
      description: |
        This set of endpoints enables the management of ALL enrollments using a synchronous service approach. An Enrollment is the allocation of a Person on a learning activity. A Person can be enrolled on a CollectionOffering, CourseOffering and ComponentOffering.
    - name: OrganizationManagment-Sync
      description: |
        This set of endpoints enables the management of ALL orgs using a synchronous service approach. An Org is the data about an organization such as School, District, University, etc.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /academicsessions:
        get:
            operationId: getAllAcademicSessions
            summary: The REST read request message for the getAllAcademicSessions() API call.
            tags: 
                - AcademicSessionManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the AcademicSessions. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no AcademicSessions to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/academicsession.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_academicsession_openapi3v1p0.yaml#/components/schemas/AcademicSessionSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllAcademicSessions
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /academicsessions/{sourcedId}:
        get:
            operationId: getAcademicSession
            summary: The REST read request message for the getAcademicSession() API call.
            tags: 
                - AcademicSessionManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific AcademicSession. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified AcademicSession cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the AcademicSession whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/academicsession.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_academicsession_openapi3v1p0.yaml#/components/schemas/SingleAcademicSessionDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectionofferings:
        get:
            operationId: getAllCollectionOfferings
            summary: The REST read request message for the getAllCollectionOfferings() API call.
            tags: 
                - CollectionOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the CollectionOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no CollectionOfferings to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_collectionoffering_openapi3v1p0.yaml#/components/schemas/CollectionOfferingSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCollectionOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCollectionOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCollectionOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCollectionOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectionofferings/enrollments:
        get:
            operationId: getAllCollectionOfferingEnrollments
            summary: The REST read request message for the getAllCollectionOfferingEnrollments() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for all CollectionOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCollectionOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCollectionOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCollectionOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCollectionOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectionofferings/{collectionOfferingId}/enrollments:
        get:
            operationId: getEnrollmentsForCollectionOffering
            summary: The REST read request message for the getEnrollmentsForCollectionOffering() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for a specific CollectionOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'. If the identified CollectionOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: collectionOfferingId
                  in: path
                  description: |
                      The 'sourcedId' of the CollectionOffering for which the Enrollment data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForCollectionOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForCollectionOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForCollectionOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForCollectionOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectionofferings/{sourcedId}:
        get:
            operationId: getCollectionOffering
            summary: The REST read request message for the getCollectionOffering() API call.
            tags: 
                - CollectionOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific CollectionOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified CollectionOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the CollectionOffering whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_collectionoffering_openapi3v1p0.yaml#/components/schemas/SingleCollectionOfferingDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectiontemplates:
        get:
            operationId: getAllCollectionTemplates
            summary: The REST read request message for the getAllCollectionTemplates() API call.
            tags: 
                - CollectionTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the CollectionTemplates. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no CollectionTemplates to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_collectiontemplate_openapi3v1p0.yaml#/components/schemas/CollectionTemplateSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCollectionTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCollectionTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCollectionTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCollectionTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /collectiontemplates/{sourcedId}:
        get:
            operationId: getCollectionTemplate
            summary: The REST read request message for the getCollectionTemplate() API call.
            tags: 
                - CollectionTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific CollectionTemplate. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified CollectionTemplate cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the CollectionTemplate whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_collectiontemplate_openapi3v1p0.yaml#/components/schemas/SingleCollectionTemplateDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componentofferings:
        get:
            operationId: getAllComponentOfferings
            summary: The REST read request message for the getAllComponentOfferings() API call.
            tags: 
                - ComponentOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the ComponentOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no ComponentOfferings to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_componentoffering_openapi3v1p0.yaml#/components/schemas/ComponentOfferingSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllComponentOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllComponentOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllComponentOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllComponentOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componentofferings/enrollments:
        get:
            operationId: getAllComponentOfferingEnrollments
            summary: The REST read request message for the getAllComponentOfferingEnrollments() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for all ComponentOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllComponentOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllComponentOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllComponentOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllComponentOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componentofferings/{componentOfferingId}/enrollments:
        get:
            operationId: getEnrollmentsForComponentOffering
            summary: The REST read request message for the getEnrollmentsForComponentOffering() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for a specific ComponentOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'. If the identified ComponentOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: componentOfferingId
                  in: path
                  description: |
                      The 'sourcedId' of the ComponentOffering for which the Enrollment data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForComponentOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForComponentOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForComponentOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForComponentOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componentofferings/{sourcedId}:
        get:
            operationId: getComponentOffering
            summary: The REST read request message for the getComponentOffering() API call.
            tags: 
                - ComponentOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific ComponentOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified ComponentOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the ComponentOffering whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_componentoffering_openapi3v1p0.yaml#/components/schemas/SingleComponentOfferingDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componenttemplates:
        get:
            operationId: getAllComponentTemplates
            summary: The REST read request message for the getAllComponentTemplates() API call.
            tags: 
                - ComponentTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the ComponentTemplates. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no ComponentTemplates to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_componenttemplate_openapi3v1p0.yaml#/components/schemas/ComponentTemplateSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllComponentTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllComponentTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllComponentTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllComponentTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /componenttemplates/{sourcedId}:
        get:
            operationId: getComponentTemplate
            summary: The REST read request message for the getComponentTemplate() API call.
            tags: 
                - ComponentTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific ComponentTemplate. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified ComponentTemplate cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the ComponentTemplate whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_componenttemplate_openapi3v1p0.yaml#/components/schemas/SingleComponentTemplateDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /courseofferings:
        get:
            operationId: getAllCourseOfferings
            summary: The REST read request message for the getAllCourseOfferings() API call.
            tags: 
                - CourseOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the CourseOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no CourseOfferings to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_courseoffering_openapi3v1p0.yaml#/components/schemas/CourseOfferingSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCourseOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCourseOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCourseOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCourseOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /courseofferings/enrollments:
        get:
            operationId: getAllCourseOfferingEnrollments
            summary: The REST read request message for the getAllCourseOfferingEnrollments() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for all CourseOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCourseOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCourseOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCourseOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCourseOfferingEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /courseofferings/{courseOfferingId}/enrollments:
        get:
            operationId: getEnrollmentsForCourseOffering
            summary: The REST read request message for the getEnrollmentsForCourseOffering() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for a specific CourseOfferings. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'. If the identified CourseOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: courseOfferingId
                  in: path
                  description: |
                      The 'sourcedId' of the CourseOffering for which the Enrollment data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForCourseOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForCourseOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForCourseOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForCourseOffering
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /courseofferings/{sourcedId}:
        get:
            operationId: getCourseOffering
            summary: The REST read request message for the getCourseOffering() API call.
            tags: 
                - CourseOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific CourseOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified CourseOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the CourseOffering whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_courseoffering_openapi3v1p0.yaml#/components/schemas/SingleCourseOfferingDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /coursetemplates:
        get:
            operationId: getAllCourseTemplates
            summary: The REST read request message for the getAllCourseTemplates() API call.
            tags: 
                - CourseTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the CourseTemplates. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no CourseTemplates to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_coursetemplate_openapi3v1p0.yaml#/components/schemas/CourseTemplateSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCourseTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCourseTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCourseTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCourseTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /coursetemplates/{sourcedId}:
        get:
            operationId: getCourseTemplate
            summary: The REST read request message for the getCourseTemplate() API call.
            tags: 
                - CourseTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific CourseTemplate. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified CourseTemplate cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the CourseTemplate whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_coursetemplate_openapi3v1p0.yaml#/components/schemas/SingleCourseTemplateDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /educationofferings:
        get:
            operationId: getAllEducationOfferings
            summary: The REST read request message for the getAllEducationOfferings() API call.
            tags: 
                - EducationOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the EducationTemplates (this MAY include CollectionOfferings, CourseOfferings and ComponentOfferings). ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no EducationOfferings to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_educationoffering_openapi3v1p0.yaml#/components/schemas/EducationOfferingSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllEducationOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllEducationOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllEducationOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllEducationOfferings
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /educationofferings/{sourcedId}:
        get:
            operationId: getEducationOffering
            summary: The REST read request message for the getEducationOffering() API call.
            tags: 
                - EducationOfferingsManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific EducationOffering. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified EducationOffering cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'. This operation/endpoint MAY be used as an alternative approach to obtaining the same data available through the data-type specific endpoints.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the EducationOffering whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_educationoffering_openapi3v1p0.yaml#/components/schemas/SingleEducationOfferingDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /educationtemplates:
        get:
            operationId: getAllEducationTemplates
            summary: The REST read request message for the getAllEducationTemplates() API call.
            tags: 
                - EducationTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the EducationTemplates (this MAY include CollectionTemplates, CourseTemplates and ComponentTemplates). ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no EducationTemplates to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_educationtemplate_openapi3v1p0.yaml#/components/schemas/EducationTemplateSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllEducationTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllEducationTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllEducationTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllEducationTemplates
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /educationtemplates/{sourcedId}:
        get:
            operationId: getEducationTemplate
            summary: The REST read request message for the getEducationTemplate() API call.
            tags: 
                - EducationTemplatesManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific EducationTemplate. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified EducationTemplate cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'. This operation/endpoint MAY be used as an alternative approach to obtaining the same data available through the data-type specific endpoints.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the EducationTemplate whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_educationtemplate_openapi3v1p0.yaml#/components/schemas/SingleEducationTemplateDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /enrollments:
        get:
            operationId: getAllEnrollments
            summary: The REST read request message for the getAllEnrollments() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllEnrollments
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /enrollments/{sourcedId}:
        get:
            operationId: getEnrollment
            summary: The REST read request message for the getEnrollment() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain a specific Enrollment. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified Org cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the Enrollment whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.The 'sourcedId' of the Org whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/SingleEnrollmentDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /orgs:
        get:
            operationId: getAllOrgs
            summary: The REST read request message for the getAllOrgs() API call.
            tags: 
                - OrganizationManagment-Sync
            description: |
                This operation/endpoint is used to obtain all of the Orgs. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Orgs to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'.
            parameters: 
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/org.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_organization_openapi3v1p0.yaml#/components/schemas/OrgSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllOrgs
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /orgs/{sourcedId}:
        get:
            operationId: getOrg
            summary: The REST read request message for the getOrg() API call.
            tags: 
                - OrganizationManagment-Sync
            description: |
                This operation/endpoint is used to obtain a specific Org. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). If the identified Org cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The 'sourcedId' of the Org whose data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/org.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_organization_openapi3v1p0.yaml#/components/schemas/SingleOrgDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"

    /persons/{personId}/enrollments:
        get:
            operationId: getEnrollmentsForPerson
            summary: The REST read request message for the getEnrollmentsForPerson() API call.
            tags: 
                - EnrollmentManagement-Sync
            description: |
                This operation/endpoint is used to obtain all of the Enrollments for a specific Person. ALL of the corresponding data MUST be returned (the returned data set MAY be influenced by any associated query parameters). When there are no Enrollments to be returned, the service provider MUST return an empty data set with a 'statusInfo.codeMinor' value of 'norecordsfound'. If the identified Person cannot be located, the service provider MUST return an error message with a statusInfo.codeMinor='objectnotfound'.
            parameters: 
                - name: personId
                  in: path
                  description: |
                      The 'sourcedId' of the Person for whom the Enrollment data is required. This parameter MUST be supplied and it MUST be a valid identifier otherwise an error report will be returned.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message. The value of fields is a comma delimited list of the fields that MUST be return. 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. 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.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly
            responses: 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=...local code...' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_enrollment_openapi3v1p0.yaml#/components/schemas/EnrollmentSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getEnrollmentsForPerson
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getEnrollmentsForPerson
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getEnrollmentsForPerson
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getEnrollmentsForPerson
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        An invalid query parameter was supplied and so the request action could not be implemented. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The accompanying 'codeMinor' value of either 'invalidfilterfield' or 'invalidselectionfield' or 'invalidsortfield' or 'invalidorderbyfield' MUST be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "403" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorised request'. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=unauthorised request' values.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be supplied or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "429" : 
                    description: |
                        This code is used to indicate that the server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=busy_server' values'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code. This MUST be accompanied by the status values of 'statusInfo.codeMajor=failure', 'statusInfo.severeity=error' and 'statusInfo.codeMinor=internal_server_error' values. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "204" : 
                    description: |
                        The requested read has been fully serviced and there is no data. The status field values of 'statusInfo.severity=status', 'statusInfo.codeMajor=success' and 'statusInfo.codeMinor=fullsuccess' MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"
                "405" : 
                    description: |
                        The service provider supports this service but is does not support this endpoint. The status field values of 'statusInfo.severity=failure', 'statusInfo.codeMajor=errror' and 'statusInfo.codeMinor=unsupported MUST be returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "https://purl.imsglobal.org/spec/commondatamodel/v1p0/schema/openapi/ims_commondatamodel_statusinfo_openapi3v1p0.yaml#/components/schemas/StatusInfoDType"


#####################################################################################
#                               Components                                          #
#####################################################################################
components:
    securitySchemes:
        OAuth2CC:
            type: oauth2
            description: |
                All of the associated endpoints MUST use OAuth 2 (Client Credentials) as defined in the IMS Security Framework [Security, 21]. The defined set of scopes MUST also be used.
            flows:
                clientCredentials:
                    tokenUrl: https://oauth2server.imsglobal.org/oauth2server/clienttoken
                    scopes: 
                        http://purl.imsglobal.org/unifiedmodel/educationservice/scope/academicsession.readonly: This scope enables a consumer to make use of ALL of the endpoints that read single or collection academic session objects.
                        http://purl.imsglobal.org/unifiedmodel/educationservice/scope/education.readonly: This scope enables a consumer to make use of ALL of the endpoints that read single or collection education objects.
                        http://purl.imsglobal.org/unifiedmodel/educationservice/scope/enrollment.readonly: This scope enables a consumer to make use of ALL of the endpoints that read single or collection enrollment objects.
                        http://purl.imsglobal.org/unifiedmodel/educationservice/scope/org.readonly: This scope enables a consumer to make use of ALL of the endpoints that read single or collection org objects.
