# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           1st September, 2024
# Version:        1.0
# Status:         1EdTech Candidate Final
# Description:    The OneRoster Absences Service binding is available in REST/JSON and described using OpenAPI. The model is based upon the 1EdTech Model Driven Specification approach.
# 
# History:        Version 1.0: This is the first release of the OneRoster Absences Service 1.0 binding in REST/JSON and OpenAPI.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the 1EdTech OneRoster Absences Service Version 1.0
#                 found at https://www.1edtech.org/lis and the original 1EdTech schema binding or code base at
#                 https://www.1edtech.org/lis.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on 1EdTech procedures with respect to rights in 1EdTech 
#                 specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) 1EdTech Consortium 1999-2024. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.org/license.html.
# 
#                 Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
# 
#                 The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
# 
#                 THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
#                 EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
#                 NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
#                 ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st October, 2022
# Autogen Engineer: Colin Smythe (1EdTech)
# Autogen Date:     2024-08-28
# 
# 1EdTech Auto-generation Binding Tool-kit (E-BAT)
# ================================================
# This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT). While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool. Permission is given to make use of this tool. 1EdTech makes no
# claim on the materials created by third party users of this tool. Details on how to use this tool
# are contained in the 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
# https://www.1edtech.org.
# 
# Tool Copyright:  2012-2024  (c) 1EdTech Consortium Inc. All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: OneRoster Absences Service OpenAPI (YAML) Definition
    description: The OneRoster Absences Service binding is available in REST/JSON and described using OpenAPI. The model is based upon the 1EdTech Model Driven Specification approach.
    termsOfService: https://www.imsglobal.org/license.html
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

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

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AbsencesManagement
      description: |
        This enables the management of information about student absences.
    - name: SchoolsManagement
      description: |
        This enables the management of information about student absences i.e. absences from a specific school.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /absences/detail:
        get:
            operationId: getAllDetailAbsences
            summary: The REST read request message for the getAllDetailAbsences() API call.
            tags: 
                - AbsencesManagement
            description: |
                To read, get, the complete collection of student absences (detail) i.e. all absences (detail).
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence-core.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required absence details data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceDetailSetDType"
                    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: getAllDetailAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllDetailAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllDetailAbsences
                            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: getAllDetailAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /absences/detail/{sourcedId}:
        get:
            operationId: getDetailAbsence
            summary: The REST read request message for the getDetailAbsence() API call.
            tags: 
                - AbsencesManagement
            description: |
                To read, get, a specific student absence (detail) description. If the specified student absence cannot be identified within the service provider then a status code of 'unknownobject' must be reported. 
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence-core.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceDetailDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        his is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /absences/summary:
        get:
            operationId: getAllSummaryAbsences
            summary: The REST read request message for the getAllSummaryAbsences() API call.
            tags: 
                - AbsencesManagement
            description: |
                To read, get, the complete collection of student absences (summary) i.e. all absences (summary).
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence-core.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceSummarySetDType"
                    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: getAllSummaryAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllSummaryAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllSummaryAbsences
                            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: getAllSummaryAbsences
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /absences/summary/{sourcedId}:
        get:
            operationId: getSummaryAbsence
            summary: The REST read request message for the getSummaryAbsence() API call.
            tags: 
                - AbsencesManagement
            description: |
                To read, get, a specific student absence (summary) description. If the specified student absence cannot be identified within the service provider then a status code of 'unknownobject' must be reported. 
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence-core.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceSummaryDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/absences/detail:
        get:
            operationId: getDetailAbsenceSetForSchool
            summary: The REST read request message for the getDetailAbsenceSetForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the set of student absence (detail) information for the specified school.  If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required absence details data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceDetailSetDType"
                    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: getDetailAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getDetailAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getDetailAbsenceSetForSchool
                            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: getDetailAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/absences/detail/{absenceSourcedId}:
        get:
            operationId: getDetailAbsenceForSchool
            summary: The REST read request message for the getDetailAbsenceForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the specified student absence (detail) information for the specified school.  If the specified school or student absence record cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: absenceSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceDetailDType"
                    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: getDetailAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getDetailAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getDetailAbsenceForSchool
                            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: getDetailAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        his is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/absences/summary:
        get:
            operationId: getSummaryAbsenceSetForSchool
            summary: The REST read request message for the getSummaryAbsenceSetForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the set of student absence (summary) information for the specified school.  If the specified school cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceSummarySetDType"
                    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: getSummaryAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getSummaryAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getSummaryAbsenceSetForSchool
                            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: getSummaryAbsenceSetForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/absences/summary/{absenceSourcedId}:
        get:
            operationId: getSummaryAbsenceForSchool
            summary: The REST read request message for the getSummaryAbsenceForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the specified student absence (summary) information for the specified school.  If the specified school or student absence record cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: absenceSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceSummaryDType"
                    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: getSummaryAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getSummaryAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getSummaryAbsenceForSchool
                            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: getSummaryAbsenceForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/detail:
        get:
            operationId: getDetailAbsenceSetForStudentInSchool
            summary: The REST read request message for the getDetailAbsenceSetForStudentInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the set of student absence (detail) information for the specified school and student.  If the specified school or student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required absence details data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceDetailSetDType"
                    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: getDetailAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getDetailAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getDetailAbsenceSetForStudentInSchool
                            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: getDetailAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/detail/{absenceSourcedId}:
        get:
            operationId: getDetailAbsenceForStudentInSchool
            summary: The REST read request message for the getDetailAbsenceForStudentInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the specified student absence (detail) information for the specified school and student.  If the specified student absence, school or student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: absenceSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceDetailDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        his is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/summary:
        get:
            operationId: getSummaryAbsenceSetForStudentInSchool
            summary: The REST read request message for the getSummaryAbsenceSetForStudentInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the set of student absence (summary) information for the specified school and student.  If the specified school or student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/StudentAbsenceSummarySetDType"
                    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: getSummaryAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getSummaryAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getSummaryAbsenceSetForStudentInSchool
                            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: getSummaryAbsenceSetForStudentInSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/students/{studentSourcedId}/absences/summary/{absenceSourcedId}:
        get:
            operationId: getSummaryAbsenceForStudentInSchool
            summary: The REST read request message for the getSummaryAbsenceForStudentInSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To read the specified student absence (summary) information for the specified school and student.  If the specified student absence, school or student cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: absenceSourcedId
                  in: path
                  description: |
                      The interoperability unique identifier for the student absence.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly
            x-1edtech-confidentiality: normal
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned (this includes an empty data set that may arise due to the application of querying parameters).
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleStudentAbsenceSummaryDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "403" : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid 'sourcedId' has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "405" : 
                    description: |
                        This error report is returned when the Service Provider does not support, but is aware of, the endpoint to which the request was made. This would be accompanied by the 'codeMajor/severity' values of 'status/unsupported. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e., syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "429" : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "500" : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"


#####################################################################################
#                               Components                                          #
#####################################################################################
components:
    securitySchemes:
        OAuth2CC:
            type: oauth2
            description: |
                OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework 1.1) is to be used.
            flows:
                clientCredentials:
                    tokenUrl: https://www.1edtech.org/token
                    scopes: 
                        https://purl.imsglobal.org/spec/or/v1p2/scope/absence.readonly: To enable access to ALL of the endpoints for the student absences service.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/absence-core.readonly: The core set of scopes to enable information about all student absences or a single student absence to be obtained.
    schemas: 
        AbsenceAdjustmentsDType:
            description: |
                The container for the adjustment information being made to the attendance record.
            type: object
            required: 
                - identifier
                - registeredInfo
                - days
                - minutes
                - term
            x-1edtech-privacy:
                - registeredInfo
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - registeredInfo
            properties: 
                identifier: 
                    description: The unique identifier for the absence adjustments. Model Primitive Datatype = String.
                    type: string
                registeredInfo: 
                    $ref: "#/components/schemas/SignRegInfoDType"
                days: 
                    description: The adjustment to the days. The value can be positive or negative. Model Primitive Datatype = Integer.
                    type: integer
                    format: int32
                minutes: 
                    description: The adjustment to the minutes. The value can be positive or negative. Model Primitive Datatype = Integer.
                    type: integer
                    format: int32
                term: 
                    $ref: "#/components/schemas/AcademicSessionSIDRefDType"
            additionalProperties: false
        AbsenceDetailsDType:
            description: |
                The container for details about a single absence i.e. the date/time at which the absence occurred.
            type: object
            required: 
                - identifier
                - fromTime
                - toTime
                - absenceDurationUnit
                - absenceDurationValue
                - registeredInfo
                - absenceClassification
                - signingInfo
            x-1edtech-privacy:
                - registeredInfo
                - signingInfo
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - registeredInfo
                - signingInfo
            properties: 
                identifier: 
                    description: The unique identifier for the absence details. Model Primitive Datatype = String.
                    type: string
                fromTime: 
                    description: The timestamp for the start time of the absence. The format MUST be 'YYYY-MM-DDTHH:MM:SSZ'.  Full-day absence is indicated with time 00:00:00. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                toTime: 
                    description: The timestamp for the end time of the absence. The format MUST be 'YYYY-MM-DDTHH:MM:SSZ'.  Full-day absence is indicated with time 00:00:00. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                absenceDurationUnit: 
                    description: |
                        The units for the duration of the absence being reported.
                    type: string
                    enum: 
                       - DAYS
                       - MINUTES
                absenceDurationValue: 
                    description: The duration of absence in either minutes or days. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                registeredInfo: 
                    $ref: "#/components/schemas/SignRegInfoDType"
                absenceClassification: 
                    description: |
                        Classification of the type of absence. This is from an enumerated list.
                    anyOf: 
                        - description: The data-type that enables an enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                          type: string
                          pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        - enum: 
                            - invalid
                            - valid
                            - leave
                            - leaveWithDeduction
                          type: string
                signingInfo: 
                    $ref: "#/components/schemas/SignRegInfoDType"
                sessionsAffected: 
                    description: Identifiers to the sessions corresponding (if any) to the registered period of absence. This is a comma separated list. Model Primitive Datatype = String.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                classesAffected: 
                    description: The 'sourcedIds' of the classes corresponding (if any) to the registered period of absence. Note that if same subject are held in subsequent sessions, the identifiers of classes (subjectGroups) might be replicated. This indicated two sessions with the same class. (e.g. double-lesson of mathematics). An example is [13002,13020,13020,13038,13038,13047] Model Primitive Datatype = String.
                    type: array
                    minItems: 0
                    items: 
                        type: string
            additionalProperties: false
        AcademicSessionSIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId.
            type: object
            required: 
                - href
                - sourcedId
                - type
            x-1edtech-confidentiality: unrestricted
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The interoperability unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'academicSession'.
                    type: string
                    enum: 
                       - academicSession
            additionalProperties: false
        MetadataDType:
            description: |
                This is the container for the data model extensions that may be assigned to the associated class of objects.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: {}
            additionalProperties: true
        SchoolSIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'School' object that has an allocated sourcedId.
            type: object
            required: 
                - href
                - sourcedId
                - type
            x-1edtech-confidentiality: unrestricted
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The interoperability unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'school.
                    type: string
                    enum: 
                       - org
            additionalProperties: false
        SignRegInfoDType:
            description: |
                The formal signing/registering of the absence information. Note that only signed absences are returned in the response for student absenceDetails.
            type: object
            required: 
                - time
                - byUserId
            x-1edtech-confidentiality: unrestricted
            properties: 
                comment: 
                    description: The comment (if any) from the contact teacher when signing/registering the absence. Model Primitive Datatype = String.
                    type: string
                time: 
                    description: The DateTime of the signing/registering of the absence details. This is [ISO 8601] format with the required form of 'YYYY-MM-DDTHH:MM:SSZ'. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                byUserId: 
                    $ref: "#/components/schemas/UserSIDRefDType"
            additionalProperties: false
        SingleStudentAbsenceDetailDType:
            description: |
                This is the container for a single student absence (detail) instance for a message payload.
            type: object
            required: 
                - absence
            x-1edtech-privacy:
                - absence
            x-1edtech-confidentiality: normal
            properties: 
                absence: 
                    $ref: "#/components/schemas/StudentAbsenceDetailDType"
            additionalProperties: false
        SingleStudentAbsenceSummaryDType:
            description: |
                This is the container for a single student absence (summary) instance for a message payload.
            type: object
            required: 
                - absence
            x-1edtech-privacy:
                - absence
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - absence
            properties: 
                absence: 
                    $ref: "#/components/schemas/StudentAbsenceSummaryDType"
            additionalProperties: false
        StudentAbsenceDetailDType:
            description: |
                The container for the student absence information (detail). This is the summary information plus the set of associated absence details and the corresponding absence adjustments.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - totalDaysAbsent
                - totalMinutesAbsent
                - deductedDaysAbsent
                - deductedMinutesAbsent
                - adjustedDaysAbsent
                - adjustedMinutesAbsent
                - accumulatedDaysAbsent
                - accumulatedMinutesAbsent
                - user
                - school
                - term
                - absenceDetailSet
            x-1edtech-privacy:
                - metadata
                - user
                - absenceDetailSet
                - absenceAdjustmentSet
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - absenceDetailSet
                - absenceAdjustmentSet
            properties: 
                sourcedId: 
                    description: All Objects MUST be identified by a Source Identifier. This is a unique system interoperability identifier for an object. This is the identifier that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local identifiers (e.g. database key fields) they use to the corresponding SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the DateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. The format MUST be 'YYYYY-MM-DDTHH:MM:SS.sssZ'. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                totalDaysAbsent: 
                    description: Number of days (integer) registered, adjusted by the 'adjustedDaysAbsent'. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                totalMinutesAbsent: 
                    description: Number of minutes (integer) registered, adjusted by the 'adjustedMinutesAbsent'. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                deductedDaysAbsent: 
                    description: Number of absence days, integer, that shall be deducted. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                deductedMinutesAbsent: 
                    description: Number of absence minutes, integer, that shall be deducted. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                adjustedDaysAbsent: 
                    description: Manually registered addition or withdrawal of absence days, integer, for the given SchoolYear. Affects the 'totalDaysAbsent' value. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                adjustedMinutesAbsent: 
                    description: Manually registered addition or withdrawal of absence minutes, integer, for the given SchoolYear. Affects the 'totalMinutesAbsent' value. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                accumulatedDaysAbsent: 
                    description: Number of absence days, integer, to be shown as days of absence for the given School Year. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                accumulatedMinutesAbsent: 
                    description: Number of absence minutes, integer, to be shown as minutes of absence for the given School Year. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                user: 
                    $ref: "#/components/schemas/UserSIDRefDType"
                school: 
                    $ref: "#/components/schemas/SchoolSIDRefDType"
                term: 
                    $ref: "#/components/schemas/AcademicSessionSIDRefDType"
                absenceDetailSet: 
                    description: |
                        The details for each of the absences being reported.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/AbsenceDetailsDType"
                absenceAdjustmentSet: 
                    description: |
                        The set of adjustments to be made for the set of absences.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AbsenceAdjustmentsDType"
            additionalProperties: false
        StudentAbsenceDetailSetDType:
            description: |
                This is the container for a collection of student absences (detail) instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            x-1edtech-privacy:
                - absences
            x-1edtech-confidentiality: normal
            properties: 
                absences: 
                    description: |
                        The collection of student absences (detail) instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/StudentAbsenceDetailDType"
            additionalProperties: false
        StudentAbsenceSummaryDType:
            description: |
                The container for the student absence information (summary). This also provides the links to the associated user (student), school and school-year.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - totalDaysAbsent
                - totalMinutesAbsent
                - deductedDaysAbsent
                - deductedMinutesAbsent
                - adjustedDaysAbsent
                - adjustedMinutesAbsent
                - accumulatedDaysAbsent
                - accumulatedMinutesAbsent
                - user
                - school
                - term
            x-1edtech-privacy:
                - metadata
                - user
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - metadata
                - user
            properties: 
                sourcedId: 
                    description: All Objects MUST be identified by a Source Identifier. This is a unique system interoperability identifier for an object. This is the identifier that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local identifiers (e.g. database key fields) they use to the corresponding SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the DateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. The format MUST be 'YYYYY-MM-DDTHH:MM:SS.sssZ'. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                totalDaysAbsent: 
                    description: Number of days (integer) registered, adjusted by the 'adjustedDaysAbsent'. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                totalMinutesAbsent: 
                    description: Number of minutes (integer) registered, adjusted by the 'adjustedMinutesAbsent'. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                deductedDaysAbsent: 
                    description: Number of absence days, integer, that shall be deducted. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                deductedMinutesAbsent: 
                    description: Number of absence minutes, integer, that shall be deducted. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                adjustedDaysAbsent: 
                    description: Manually registered addition or withdrawal of absence days, integer, for the given SchoolYear. Affects the 'totalDaysAbsent' value. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                adjustedMinutesAbsent: 
                    description: Manually registered addition or withdrawal of absence minutes, integer, for the given SchoolYear. Affects the 'totalMinutesAbsent' value. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                accumulatedDaysAbsent: 
                    description: Number of absence days, integer, to be shown as days of absence for the given School Year. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                accumulatedMinutesAbsent: 
                    description: Number of absence minutes, integer, to be shown as minutes of absence for the given School Year. Model Primitive Datatype = NonNegativeInteger.
                    type: integer
                    format: int32
                    minimum: 0
                user: 
                    $ref: "#/components/schemas/UserSIDRefDType"
                school: 
                    $ref: "#/components/schemas/SchoolSIDRefDType"
                term: 
                    $ref: "#/components/schemas/AcademicSessionSIDRefDType"
            additionalProperties: false
        StudentAbsenceSummarySetDType:
            description: |
                This is the container for a collection of student absences (summary) instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            x-1edtech-privacy:
                - absences
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - absences
            properties: 
                absences: 
                    description: |
                        The collection of student absences (summary) instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/StudentAbsenceSummaryDType"
            additionalProperties: false
        UserSIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId.
            type: object
            required: 
                - href
                - sourcedId
                - type
            x-1edtech-confidentiality: unrestricted
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The interoperability unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'user'.
                    type: string
                    enum: 
                       - user
            additionalProperties: false
        imsx_CodeMinorDType:
            description: |
                This is the container for the set of code minor status codes reported in the responses from the Service Provider.
            type: object
            required: 
                - imsx_codeMinorField
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMinorField: 
                    description: |
                        Each reported code minor status code.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/imsx_CodeMinorFieldDType"
            additionalProperties: false
        imsx_CodeMinorFieldDType:
            description: |
                This is the container for a single code minor status code.
            type: object
            required: 
                - imsx_codeMinorFieldName
                - imsx_codeMinorFieldValue
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMinorFieldName: 
                    description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                    type: string
                    default: TargetEndSystem
                imsx_codeMinorFieldValue: 
                    description: |
                        The code minor status code (this is a value from the corresponding enumerated vocabulary).
                    type: string
                    enum: 
                       - fullsuccess
                       - invalid_filter_field
                       - invalid_selection_field
                       - forbidden
                       - unauthorised_request
                       - internal_server_error
                       - server_busy
                       - unknownobject
                       - invaliddata
                       - invalid_sort_field
                       - unsupported
            additionalProperties: false
        imsx_StatusInfoDType:
            description: |
                This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Absences service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class.
            type: object
            required: 
                - imsx_codeMajor
                - imsx_severity
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMajor: 
                    description: |
                        The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                    type: string
                    enum: 
                       - success
                       - processing
                       - failure
                       - unsupported
                imsx_severity: 
                    description: |
                        The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                    type: string
                    enum: 
                       - status
                       - warning
                       - error
                imsx_description: 
                    description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                    type: string
                imsx_CodeMinor: 
                    $ref: "#/components/schemas/imsx_CodeMinorDType"
            additionalProperties: false
